eine Resourcenmailbox erstellen...
eine Abwesenheitsnachricht erstellen...
grafische Powershell für Exchange konfigurieren...
AD-Attribut legacyExchangeDN nachträglich ändern...
AD-Attribut mailNickName nachträglich ändern...
Exchange2007-Zertifikat nachträglich ändern...
zeige mir alle Mails der letzten 24 Stunden an, die wegen einem Fehler nicht zugestellt werden konnten:
Get-Messagetrackinglog -Resultsize unlimited -EventID “FAIL” | where-object {$_.Timestamp -ge ((get-date).AddDays(-1)) } |fl Timestamp,Sender,Recipients,Recipientstatus
Mailboxgröße anzeigen lassen:
Get-MailboxStatistics |where {$_.TotalItemSize -gt 200000000} | sort-object TotalItemSize -descending |FT DisplayName,ItemCount,TotalItemSize
AD-Rechte anzeigen (als identity geht auch der NT-Anmeldename):
Get-adpermission -identity "Tom Waits"
PostfachQuota „Senden verbieten“ auslesen:
get-mailbox -resultsize unlimited
PostfachQuota „Senden verbieten“ setzen:
Get-Mailbox *Tom* | Set-Mailbox -ProhibitSendQuota 100MB
Alle Benutzer mit send-as rechten anzeigen:
Get-Mailbox | Get-ADPermission | where {($_.ExtendedRights -like “*Send-As*”) -and ($_.IsInherited -eq $false) -and -not ($_.User -like “NT AUTHORITY\SELF”)} | FT -Wrap
einem Benutzer (Bsp. mailadm) volle Rechte an allen Postfächern einrichten:
Get-Mailbox | Add-Mailboxpermission -user "mailadm" -accessRights 'FullAccess' -InheritanceType All
Zugriff über OWA testen:
test-owaconnectivity -url:https://myexchsrv/owa -mailboxcredential:(get-credential mydom\username)
Postfach verschieben:
Move-Mailbox -Identity ntusername -TargetDatabase 'myexchsrv\SG3\SG3_DB' -confirm:$false
nach einer gesendeten Mail suchen; es wird nur was gefunden, wenn vom exchangeserver aus gesendet wurde.
get-messagetrackinglog -Sender "absender@mydom.ain" -EventID "SEND" -Start "08.12.2010 09:41:00" -End "09.12.2010 10:51:00"
wenn über die Relayingfunktion des exchangeservers von einem Linuxserver per SMTP gesendet wurde, muss das Logfile manuell durchsucht werden.
e:\Exchange2007\TransportRoles\Logs\MessageTracking\MSGTRK20101209-1.LOG
Offlineadressbuch aus globalen Katalog manuell sofort aktualisieren:
Update-GlobalAddressList -identity "Globale Standardadressliste" Update-FileDistributionService -Identity myexchsrv -type "OAB"
Alle „Abkehrer“ nicht mehr im Adressbuch anzeigen lassen(Exchange2003/Exchange2007-Problem)
Get-MailBox -OrganizationalUnit "Abkehrer" | Set-Mailbox -HiddenFromAddressListsEnabled $true
dann
Update-GlobalAddressList -identity "Globale Standardadressliste"
Zeige alle seit gestern per GAL-Replikation neu erstellten oder geänderten Kontakte an:
get-contact -ResultSize Unlimited | where-object {$_.whenchanged -ge ((get-date).AddDays(-1)) }| fl whenchanged,name,windowsemailaddress
Maile alle seit gestern per GAL-Replikation neu erstellten oder geänderten Kontakte an admin@dom.ain
:
(bitte alles in eine Zeile ohne die Backslashes)
send-mailmessage -to admin@dom.ain -from spinne@dom.ain -subject "neue Kontakte" -smtpserver meinSMTPsrv -Body \ (get-contact -ResultSize Unlimited | \ where-object {$_.whenchanged -ge ((get-date).AddDays(-1)) -and $_.whenchanged -le ((get-date))}| \ fl whenchanged,name,windowsemailaddress | Out-String)
gebe dem Benutzer service_pf das recht auf Impersonation an allen Postfächern:
Get-MailboxDatabase | ForEach-Object {Add-ADPermission -Identity $_.DistinguishedName -User service_pf -ExtendedRights ms-Exch-EPI-Impersonation} Get-MailboxDatabase | ForEach-Object {Add-ADPermission -Identity $_.DistinguishedName -User service_pf -ExtendedRights ms-Exch-EPI-May-Impersonate}
Prüfe die erfolgreiche Übernahme der gerade vergebenen Rechte:
Get-Mailboxdatabase | get-adpermission -user service_pf
Geplanten Task erstellen:
Beispielpfad für Exchangeordner: E:Exchange2007
Action: | Start a program |
Program/script: | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe |
Add Arguments | -PsConsoleFile E:\Exchange2007\Bin\exshell.psc1 -command „E:\Exchange2007\Scripts\sendNonDeliveryReport.ps1“ |
Achtung: Leerzeichen im Pfad werden trotz Anführungszeichen mit Fehler quitiert.
Public Folders
Alle öffentlichen Ordner anzeigen:
Get-PublicFolder -recurse
Rechte eines öffentlichen Ordners anzeigen:
Get-Publicfolderclientpermission -identity "\Abteilung1" | fl
Rechte auf öffentlichen Ordner übernehmen:
Add-PublicFolderClientPermission -user myntuser -identity "\Abteilung1" -AccessRights Owner Add-PublicFolderClientPermission -user myntuser -identity "\Abteilung1" -AccessRights PublishingEditor Add-PublicFolderClientPermission -user myntuser -identity "\Abteilung1" -AccessRights Editor Add-PublicFolderClientPermission -user myntuser -identity "\Abteilung1\Kalenderdazu" -AccessRights Author Add-Publicfolderclientpermission -user myntuser -identity "\Abteilung1\Eingang" -AccessRights Editor
leider habe ich es bis her noch nicht geschafft, mehrere Benutzer gleichzeitig zu berechtigen ala:
Add-Publicfolderclientpermission -user myntuser1,myntuser2 ...
Einfacher ist es manchmal, sich die Eigentumsrechte am Ordner zu verschaffen und per Outlook weitere Rechte zu konfigurieren.
Exchange 2013
Datenbank mounten:
get-mailboxdatabase | mount-database
Migration aller Mailboxen von Exchange 2007 nach Exchange 2013:
auf dem Exchange 2013 server ausführen:
get-mailbox -Database Ex2007MB1 | new-moverequest -TargetDatabase Ex2013MB1 -BatchName "mig07to13"
alten Exchangeserver 2010 löschen:
dazu alle Publicfolder vorher verschieben oder löschen:
get-publicfolderstatistics -server Ex2010 | remove-publicfolder