Vor einiger Zeit mal angefangen einige Code Schnipsel zum Thema PowerShell und Exchange Server zu posten. Bei der menge an Zugriffen auf die Einträge habe ich gesehen, dass sich wohl tatsächlich einige dafür zu interessieren scheinen… Hier also noch einige weitere mini Scripte zu dem Thema!
Erlauben von Passwort Änderungen in OWA (Outlook Web Access)
Set-OwaVirtualDirectory "owa (Default Web Site)" -ContactsEnabled:$True -ChangePasswordEnabled:$True
Anzeige von Mailboxen mit >500MB
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where {$_.TotalItemSize -gt 500MB} ` | Select-Object DisplayName, ItemCount, TotalItemSize, TotalDeletedItemSize, StorageLimitStatus ` | Export-Csv "BigMailbox$(Get-Date -f 'yyyyMMdd').csv" -NoType
Anzeige von Usern für die eine externe Weiterleitung eingetragen ist (Mit Ausgabe des Users und der Adresse)
Get-Mailbox -Filter {ForwardingAddress -ne $null} | foreach {$recipient = $_; $forwardingsmtp = (Get-Recipient $_.ForwardingAddress).PrimarySmtpAddress; Write-Host $recipient.Name, $forwardingsmtp, $recipient.DeliverToMailboxAndForward }
GZIP Level der OWA Seite ändern
Set-OwaVirtualDirectory "owa (Default Web Site)" -GzipLevel "High"
Export (CSV) von Mailbox/User Informationen
Get-mailbox | Format-Table Alias,DisplayName,@{label="FirstName";expression={(Get-User -Identity $_.Name).FirstName}},@{label="LastName";expression={(Get-User -Identity $_.Name).LastName}},SAMAccountName,Name,ServerName,Database,AddressListMembership,PrimarySmtpAddress,
EmailAddresses,HiddenFromAddressListsEnabled,@{label="Title";expression={(Get-User -Identity $_.Name).Title}},@{label="Company";expression={(Get-User -Identity $_.Name).Company}},@{label="Department";expression={(Get-User -Identity $_.Name).Department}},Office,@{label="Phone";expression={(Get-User -Identity $_.Name).Phone}},@{label="MobilePhone";expression={(Get-User -Identity $_.Name).MobilePhone}} -Autosize|Out-File c:\mailboxes.csv -width 700
Externes Out of the Office (OOF) unterbinden
$MyUser = Read-Host "User?"
$Domain = "hochwald.local"
set-mailbox $MyUser@$Domain -ExternalOOF InternalOnly
Mail Adressen prüfen
Get-Mailbox -ResultSize Unlimited | Where-Object {$_.PrimarySmtpAddress.IsValidAddress -eq $false}
Den Exchange RBL Filter aktivieren
Set-IPBlockListProvidersConfig -Enabled $True -ExternalMailEnabled $True
Den Exchange RBL Filter konfigurieren (VORSICHT mit dem AnyMatch! Das kann von Liste zu Liste nicht gewollt sein!)
Add-IPBlockListProvider -Name -LookupDomain -AnyMatch $True
Wichtiger Hinweis:
ich habe alle diese Code Schnipsel irgendwann mal verwendet. Grundsätzlich haben diese also min. min Exchange 2007 SP1 und SP2 mal funktioniert. Die Parameter muss sich natürlich jeder entsprechend anpassen. Hilfe und weitere Möglichkeiten bietet die Hilfe oder die Hilfe Example Funktion von PowerShell
get-help Get-Mailbox
get-help Get-Mailbox -example