Jobba med Inboxregler

Lista alla Inboxregler

foreach ($i in (Get-Mailbox -ResultSize unlimited)) { Get-InboxRule -Mailbox $i.DistinguishedName | fl MailboxOwnerID,name }

Lista alla Inboxregler som har delete message

foreach ($i in (Get-Mailbox -ResultSize unlimited)) { Get-InboxRule -Mailbox $i.DistinguishedName | where {$_.DeleteMessage} | fl MailboxOwnerID }

Söka efter inloggningar i säkerhetsloggen

För att hitta inloggningar från Administrator på lokal dator.

Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4624 and TimeCreated[timediff(@SystemTime) <= 86400000]] and EventData[Data[@Name='TargetUserName']='Administrator']]"

För mer info kör | select *

Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4624 and TimeCreated[timediff(@SystemTime) <= 86400000]] and EventData[Data[@Name='TargetUserName']='Administrator']]" | select *

Exportera ut PST från textfil

Enkelt script för att exportera ut PST från en lista på mailboxar, filen behöver ha mailbox som kolumnamn. Ändra Server till rätt värde innan.

Import-Csv .\Rest_Archive.txt | foreach {
$MBX = get-mailbox -identity $_.mailbox
#---Testing----
# Write-Host $MBX.alias
# Write-Host "\\pdtexchange\pst\$($MBX.alias).pst" 
# New-MailboxExportRequest -Mailbox $_.mailbox -FilePath "\\server\pst\$($MBX.alias).pst" -WhatIf 
#---End testing---

New-MailboxExportRequest -Mailbox $_.mailbox -FilePath "\\server\pst\$($MBX.alias).pst"
}

Error: “does not have a valid ExchangeGuid property and cannot be migrated”

Problem vid crossforest migration

Kör get-mailbox <mailbox> | select exchangeguid i sourceforest.

Kopiera värdet för Exchangeguid till target med:

Get-MailUser jorbus | Set-MailUser -ExchangeGuid <Exchangeguid>

För samma problem med migrering till Office365 se:

https://support.microsoft.com/en-us/help/2956029/migrationpermanentexception-cannot-find-a-recipient-that-has-mailbox-g

Skicka anonyma mail Send-MailMessage

$anonUsername = "anonymous"
$anonPassword = ConvertTo-SecureString -String "anonymous" -AsPlainText -Force
$anonCredentials = New-Object System.Management.Automation.PSCredential($anonUsername,$anonPassword)

Send-MailMessage -to "nisse@contoso.com" -from "noreply@contoso.com" -subject "Email test from..." -credential $anonCredentials -SmtpServer mail.contoso.com -Attachments "C:\temp\path.txt"

TLS Receiveconnector

Hitta receiveconnectorer med TLS certifikat

get-receiveconnector -server $env:COMPUTERNAME | where {$_.TlsCertificatename -ne $null} | select Name,TLS*

Lista alla certifikat

Get-ExchangeCertificate | ft Thumbprint,Services,Subject,Notafter -AutoSize

Byta cert på connector

$tlscert = Get-ExchangeCertificate -Thumbprint <Thumbprint>
$tlscertname = "<I>$($TLSCert.Issuer)<S>$($TLSCert.Subject)"
get-receiveconnector -server $env:COMPUTERNAME | where {$_.TlsCertificatename -ne $null} | Set-ReceiveConnector -TlsCertificateName $TLSCertName

Aktivera cert för tjänster

Enable-ExchangeCertificate -Thumbprint <Thumbprint> -Services IIS,SMTP

 

Ändra recipientfilter Dynamiska distgrupper.

Exportera ut dom grupper som ska ändras med exempelvis:

Get-DynamicDistributionGroup | select Name,Recipientfilter | export-csv c:\temp\distgroup_before_change.csv -Encoding utf8 -NoTypeInformation

Öppna filen i Notepad++ och ta bort dom grupper som inte ska ändras. Ändra filter på dom grupper som ska ändras. Spara filen som distgroup_change.csv (utf8).

Verifiera först så att det fungerar med.

Import-Csv .\distgroup_change.csv | ForEach-Object { set-DynamicDistributionGroup -identity $_.name -RecipientFilter $_.recipientfilter -whatif }

Om allt ser ok ut, ta bort whatif och genomför ändringen.

Efter ändringen så tar du ut en likadan fil som när du startade med:

Get-DynamicDistributionGroup | select Name,Recipientfilter | export-csv c:\temp\distgroup_after_change.csv -Encoding utf8 -NoTypeInformation

Du kan även kolla gruppmedlemskap före och efter med:

foreach ($group in (Get-DynamicDistributionGroup)) {Get-Recipient -RecipientPreviewFilter $group.RecipientFilter -OrganizationalUnit $group.RecipientContainer | ft @{Expression={$_.displayname};Label=($group).name} | Out-File "c:\<path>.txt" -Append}

 

Powershell söka i loggar

Sök smtploggar efter “User Name:” och skicka till fil utan filsökvägen.

Select-String -Path "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive\*.log" -Pattern "User Name:" |Foreach {$_.Line} > C:\Temp\AuthFailedUsers.txt

Sök i smtploggar efter “User Name” och visa raden över och under.

Select-String -Path "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive\*.log" -Pattern "User Name:" -Context 2

 

Hitta användare med felaktigt namn på hemkatalog

get-aduser -Filter * -SearchBase "OU=OU1,DC=Corp,DC=Contoso,DC=COM" -properties homedirectory | Where { $_.HomeDirectory -notmatch $_.SamAccountName } | Select Name,SamAccountName,HomeDirectory | Export-Csv WrongHomeDirectory.csv