PowerShell besteht aus sogenannten Modulen oder Snap-ins. Wer eine “normale” PowerShell Konsole öffnet kann die vom System mitgelieferten PowerShell CMDlets verwenden.
Wer jedoch die Funktionen erweitern will, muss zuvor die Module importieren oder die Snap-Ins hinzufügen.
Viele Produkte liefern eigene PowerShell CMDlets mit, zum Beispiel ein Exchange Server, oder die gesamte System Center Familie.
Nur weil diese installiert sind, heißt dies nicht das diese in jeder PowerShell Konsole auch zur Verfügung stehen.
Die Herausforderung
Diesen Fehler sollte jeder schon mal gesehen haben.
The term ‘Get-ADUser’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
In diesem Fall wollte ich das CMDlet Get-ADUser ausführen, diese CMDlet gehört zum Module “ActiveDirectory”
Mit
Import-Module ActiveDirectory
importieren wir das Active Directory Module, und können somit die CMDlets nutzen. Dies gilt für alle PowerShell Erweiterungen.
Damit es nicht zu einfach wird, werden manche Module mittels Add-PSSnapIn der PowerShell Konsole hinzugefügt.
Ein Beispiel sind hier die Exchange CMDlets.
Exchange 2007 funktioniert mit diesem Kommando
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin
Exchange 2010 jedoch benötigt diese Kommando
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
Die Lösung
Es gibt eine kleine Abhilfe um das ganze zu vereinfachen. Installierte PowerShell Module oder Snap-Ins registrieren sich im System und können ausgelesen werden.
Mit folgendem Kommando listet ihr alle installierte Module auf
Get-Module –ListAvailable
Dies kann wie folgt aussehen
Auch mit den Snap-Ins können wir ähnlich verfahren.
Get-PSSnapin -Registered
liefert nun folgendes
Jetzt besteht natürlich die Möglichkeit einfach alle Module zu importieren die zur Verfügung stehen.
Get-Module -ListAvailable | Import-Module
Get-PSSnapin -Registered | Add-PSSnapin
Natürlich gibt’s Hersteller deren PowerShell Erweiterungen sich nicht im System registrieren, da gibt’s noch die Möglichkeit das PSD1 File direkt zu importieren.
Hier ein Beispiel
Import-Module *Pfad zum PSD! File*
Michael Seidl aka Techguy
Hey,
habe gerade deinen Artikel gelesen – du hast einen kleinen Typo im letzten Code, da muss es “Import-Module” heißen.
Danke, schon ausgebessert
Thank you for the insight… i translated to get the idea and helped me to provide the correct solution..
Regards
Waren Jay
Senior Consultant at Crystal Soft.
E: warenjay@crystalsoft.com
W: https://techencyclopedia.wordpress.com | knowledge is ammunition
Für die Exchange CMDlets 2013 & 2016 lautet der Befehl wie folgt:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;
Pingback: TOP 10 Posts, 2017 » TechGuy
Pingback: Exchange Postfach deaktivieren und löschen | TECH FAQ
Hi,
gibt es eine Möglichkeit, daß das Exchange-SnapIn automatisch mit der Standard -Powershell mitgeladen wird?