Exchange 2010 Durchsuchen aller Postfächer in Ihrer Organisation nach einer Empfängermailadresse
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery to:empfangermailadresse@mail.de  -TargetMailbox "Discovery Search Mailbox" -TargetFolder "AllMailboxes-Election" -LogLevel Full

Exchange 2010: E-Mail Adresse suchen
Wie finde ich den Benutzer (oder das Objekt) zu dem eine E-Mailadresse gehört?
get-recipient -results unlimited | where {$_.emailaddresses -match "user@domain.com"} | select name,emailaddresses,recipienttype
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery to:user@domain.com -TargetMailbox "Discovery Search Mailbox" -TargetFolder "AllMailboxes-Election" -LogLevel Full


Exchange Emailweiterleitungen auslesen
Alle User anzeigen welche eine Weiterleitung eingerichtet haben:
get-mailbox -resultsize unlimited | where-object { $_.ForwardingAddress -notlike "" }

Feststellen wo Mailadresse in Exchange 2010 hinterlegt ist
get-recipient | where {$_.emailaddresses match "info@ludwigforster.de"} | select name,emailaddresses

Listet alle Mailboxserver auf.
Get-MailboxServer
Listet alle Postfachdatenbanken auf.
Get-MailboxDatabase
Übersicht über Datenbanken und deren Größe.
Get-MailboxDatabase -Status | ft name,server,databasesize
Listet alle vorhandenen Postfächer auf.
Get-Mailbox
Liste aller ActiveSync Geräte.
Get-ActiveSyncDevice | Select-Object FriendlyName,DeviceUserAgent,
DeviceType,DeviceOS | ft
Zeigt eine detaillierte ActiveSync-Statistik eines Postfaches an.
Get-ActiveSyncDeviceStatistics -mailbox USERNAME
Löscht ein bestimmtes ActiveSync Gerät anhand der eindeutigen Guid, die mit dem vorigen Befehl ermittelt werden kann.
Remove-ActiveSyncDevice -Identity GUID
Führt alle Postfächer mit Weiterleitung auf.
Get-Mailbox | Where-Object { $_.ForwardingAddress –ne $null }
| Select Name, ForwardingAddress
Zeigt die Warteschlange an.
Get-Queue
Zeigt detaillierte Information eines Postfaches an, inklusive Unterordnern und deren Größe.
Get-MailboxFolderStatistics -Identity USERNAME | ft FolderPath,
FolderSize,ItemsInFolder,FolderAndSubfolderSize
Ruft die Postfachstatistik inklusive Zusammenfassung des Verschiebungsverlaufs für ein bestimmtes Postfach auf. Beide Befehle liefern dasselbe Ergebnis.
Get-MailboxStatistics -Identity USERNAME -IncludeMoveHistory
| Format-List
Get-Mailbox USERNAME | Get-MailboxStatistics -IncludeMoveHistory
| Format-List
Speichert die Postfachstatistik für ein bestimmtes Postfach mit allen Details in eine Textdatei.
$temp=Get-MailboxStatistics -Identity USERNAME -IncludeMoveHistory
$temp.MoveHistory[0] | Export-CSV C:\MoveReport_USERNAME.txt
Gibt eine Postfachstatistik aller Postfächer auf einem bestimmten Server aus. Der erste Befehl zeigt nur die Benutzernamen, deren Objektanzahl, den Speicherstatus und die letzte Loginzeit an. Der zweite Befehl zeigt alle Details an. Der dritte Befehl zeigt neben den Benutzernamen auch die Objektanzahl und die Mailboxgröße an.
Get-MailboxStatistics -Server SERVERNAME
Get-MailboxStatistics -Server SERVERNAME | Format-List
Get-MailboxStatistics -Server SERVERNAME | Select-Object DisplayName,
ItemCount,TotalItemSize | Format-List
Zeigt die 50 größten Postfächer an, wobei die Liste absteigend geordnet ist.
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Sort-Object
TotalItemSize -Descending | Select-Object DisplayName,ItemCount,
TotalItemSize -First 50
Getrennte Postfächer für eine bestimmte Datenbank bzw. für alle Datenbanken aktualisieren. Getrennte Postfächer werden standardmäßig nämlich nur einmal täglich aktualisiert.
Clean-MailboxDatabase DATABASE
Get-MailboxDatabase | Clean-MailboxDatabase
Gentrennte Postfächer für einen bestimmten Server bzw. für alle Server anzeigen.
Get-MailboxStatistics -Server SERVERNAME | Where {$_.DisconnectDate
-ne $null}
Get-MailboxServer | Get-MailboxStatistics | Where {$_.DisconnectDate
-ne $null}
Gibt eine Liste der Services und deren Status zurück.
Test-ServiceHealth | fl
Hier wird der Server überprüft und ein Status ausgegeben.
Test-SystemHealth

Exchange 2010 Nachrichten Tracking via PowerShell
Beispiel 1: Suche nach allen eingehenden Nachrichten von peter@peter.com an paul@abc.com.
[PS] C:\> Get-ExchangeServer | Get-MessageTrackingLog -Sender "peter@peter.com" -Recipient "paul@abc.com" -EventId "DELIVER" | sort-object -property TimeStamp | ft Sender,Recipients,MessageSubject,TimeStamp
Beispiel 2: Suche nach allen ausgehenden Nachrichten von paul@abc.com an peter@peter.com.
[PS] C:\> Get-ExchangeServer | Get-MessageTrackingLog -Sender "paul@abc.com" -Recipient "peter@peter.com" -EventId "SEND" | sort-object -property TimeStamp | ft Sender,Recipients,MessageSubject,TimeStamp
Die Angabe von EventId ist optional, filtert aber doppelte Einträge innerhalb von Exchange (für Routing z.B.) raus.
Archivgrößen auf Exchange 2010 per Powershell ermitteln
alle Benutzer-Archive auf dem Exchange nach der Größe sortiert anzeigen:
Get-MailboxStatistics -server MB-RZ-11 | where {$_.DisplayName -match "archiv"} | Sort-Object -Property TotalItemSize –De

Wie finde ich heraus welche Verteilergruppen genutzt werden?
Die Häufigkeit der Benutzung eines Exchange Verteilers auslesen:
Get-ExchangeServer -Identity cas-rz-12 | Get-MessageTrackingLog -ResultSize unlimited -EventId expand | Group-Object relatedrecipientaddress | ft  name,count -autosize
Das geht allerdings nur die letzten 30 Tage rückwirkend, da das die Standard - Aufbewahrungszeit auf dem Exchange ist. Kann aber selbstverständlich geändert werden - braucht aber Platz.

Export des Postfachs und des Archiv-Postfachs in eine Datei.

New-MailboxExportRequest -Mailbox UserName -FilePath "\\BACK-HQ-
11\ExchangeMBs$\UserName.pst" -Name ExportUserName

New-MailboxExportRequest -Mailbox UserName -FilePath "\\BACK-HQ-
11\ExchangeMBs$\UserName-Archiv.pst" -Name ExportArchivUserName -IsArchive


Import AD-Modul und Export der Kontoinformationen

Import-Module ActiveDirectory
Get-ADuser UserName -Properties * | fl | Out-File "\\BACK-HQ-11\ExchangeMBs$\UserName.aduser.txt"

Historie der abgearbeiteten Exporte löschen

Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
-confirm:$false


Import einer PST Datei in ein Postfach
New-MailboxImportRequest -FilePath \\BACK-HQ-11\ExchangeMBs$\UserName.pst -Mailbox Username
 
Alle Postfächer einer Datenbank exportieren
(Get-Mailbox) | foreach {New-MailboxExportRequest -Mailbox $_.alias -FilePath „\\back-hq-11\ExchangeMBs$\$_.pst"}