WMI mit Powershell

Die WMI-Schnittstelle kann über Powershell mit folgendem Commandlet abgefragt werden:

Get-WmiObject Win32_Service -Filter "name='WinRM'"
gwmi Win32_Service -filter "name='Browser'" | Start-Service -PassThru

Eine Liste allter vorhanden WMI Klassen gibt dieser Befehl aus:

gwmi -List [-Namespace root\wmi]

Postfach im Exchange verschieben

Mit folgendem Kommand wird ein Postfach zwischen Exchange Server bzw. Exchange Datenbanken verschoben.

Get-MailboxDatabase
New-MoveRequest "Mustermann, Max" -BadItemLimit 0 -TargetDatabase EX-MDB-DAC-1

Mit -BadItemLimit können defekte Elemente übersprungen werden.

Logging von Sende- und Empfangskonnektoren

So wir das erweiterte Logging (verbose), immer zu empfehlen, der Exchange 2010 Send- und Empfangskonnektoren gesetzt.

Get-ReceiveConnector | Where-Object { $_.ExchangeVersion -like "0.1*" } | Set-ReceiveConnector -ProtocolLoggingLevel 'Verbose'
Get-SendConnector | Where-Object { $_.ExchangeVersion -like "0.1*" } | Set-SendConnector -ProtocolLoggingLevel 'Verbose'

Beim Mischbetrieb von Exchange 2003 und Exchange 2010 kann bei den alten Konnektoren der Wert nicht gesetzt werden. Deshalb werden die alten Versionen herausgefiltert.

Mitglieder an AD Gruppe auflisten

Mit dem folgenden Kommand können alle Mitglieder einer bestimmten Active Directory Gruppe aufgelistet werden.

Get-QADGroupMember -Identity "Domain Admins" | Sort-Object Name | Select-Object Name, SamAccountName

Für diese Kommand ist die PowerShell Extension ActiveRoles Management Shell for Active Directory von Quest erforderlich (Download).

Exchange Verschiebeanforderungen beobachten

Zum überwachen der aktuellen Exchange 2010 Postfach-Verschiebeanforderungen können folgende Powershell Kommandos verwendet werden:

Get-MoveRequest "Mustermann, Max" | Get-MoveRequestStatistics

Statistik über alle aktuell ausgeführten Verschiebungen:

Get-MoveRequest | Where-Object { $_.Status -eq "InProgress" } | Get-MoveRequestStatistics