Netz-Weise Logo

Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.
1 Minuten Lesezeit (281 Worte)

Exchange-Cmdlets in Powershell-Scripten nutzen

Wenn Sie Exchange 2013 oder 2016 per Powershell remote administrieren wollen, ohne sich auf den Exchange-Server per Powershell Remoting zu verbinden, oder wenn Sie Scripte von einer Management-Maschine aus starten wollen, brauchen Sie die Exchange-Snapins. Diese müssen Sie von den Exchange-Quellen nachinstallieren. Um die Installation starten zu können, müssen Sie allerdings eine Reihe von Software-Komponenten installiert haben. Am einfachsten geht dies über den Powershell-Befehl "Enable-WindowsoptionalFeature" auf dem Client bzw. Install-WindowsFeature auf dem Server:

Enable-WindowsOptionalFeature -Name IIS-WebServerRolead,IIS-WebServerManagementTools,IIS-IIS6ManagementCompatibility,IIS-Metabase,IIS-ManagementConsole,IIS-LegacySnapIn

Danach können Sie (für Exchange 2013) einfach über das Setup die automatisiert Installation der Exchange Management-Shell aufrufen:

Setup.exe /Role:ManagementTools /IAcceptExchangeServerLicenseTerms

Für die Installation können Sie einfach das aktuellste Exchange CU (Cumulative Update) nutzen, da das CU die komplette Exchange-Installation beinhaltet. 

Um die Exchange-Konsole zu starten, können nun die Exchange Management Shell starten. Die EMS startet automatisch die Powershell-Erweiterungen, die Exchange nach wie vor als Snap-Ins zur Verfügung stellt. Wenn Sie Exchange-Cmdlets aus einer bestehenden Powershell-Sitzung starten möchten, können Sie die Cmdlets einfach importieren, indem Sie das Script RemoteExchange.ps1 starten, dass sich im Exchange-Ordner befindet:

. 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'

Connect-ExchangeServer -auto -ClientApplication:ManagementShell 

Der Punkt vor dem Script-Pfad ist dabei relevant, denn er startet das Script dot-Sourced, was bedeutet, dass alle im Skript ausgeführten Befehle global gestartet werden. Wenn Sie den Punkt weglassen, sind alle Änderungen des Skripts nach Beendigung des Skripts wieder verschwunden. Connect-Exchangeserver verbindet dann Ihre Konsole mit Ihrem Exchange. 

Eine weitere Alternative ist es, die Snap-Ins manuell nachzuladen. 

$Snapins = "Microsoft.Exchange.Management.PowerShell.E2010","Microsoft.Exchange.Management.PowerShell.Setup","Microsoft.Exchange.Management.PowerShell.SnapIn","Microsoft.Exchange.Management.Powershell.Support"

Add-PSSnapin -Name $Snapins 

Diese Variante wird von Microsoft allerdings nicht supported. Sie führt u.a. dazu, dass Cmdlets wie Search-Mailbox direkt geladen werden, auch wenn der Benutzer kein Recht hat, die Mailboxen zu durchsuchen. 

Links

Connecting to Exchange 2010 with PowerShell

 

Emails in Exchange per Powershell suchen und lösch...
Multifaktor-Authentifzierung (MFA) in Office 365 a...

Ähnliche Beiträge

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Montag, 20. Mai 2024

Sicherheitscode (Captcha)