Ich habe gehört, Powershell 2.0 CTP hat Module, aber ich kann nicht viel Beispielcode oder Anweisungen finden. Ich habe gelesen, welche kleine Hilfe scheint online zu sein ...
Aber ich bekomme immer weiter "Der Begriff 'Add-Module' wird nicht als Cmdlet erkannt ..." wenn ich ein Modul versuche und lade.
Jede Hilfe wäre dankbar erhalten!
Bearbeiten (Juli 2010) Bitte beachten Sie, dass diese Frage auf Powershell 2.0 CTP basiert und somit eineinhalb Jahre veraltet ist! Bitte lesen Sie die Antwort von Samuel Jack für Hilfe mit dem Powershell 2.0 RTM.
Mit dem Win7-Build ist Add-Module weg. Das neue Cmdlet ist Import-Modul. Die einfachste Methode zum Erstellen eines Moduls besteht darin, eine PS1-Datei in eine PSM1-Datei umzubenennen. Von dort aus können Sie alle möglichen Dinge tun, einschließlich des Modulmanifests.
Ich bin kein Powershell-Experte, aber hier ist, was ich gerade mit PowerShell 2.0 RTM herausgefunden habe.
Angenommen, Sie möchten ein Modul mit dem Namen MyModule erstellen:
Export-ModuleMember -Function * -Alias *
exportiert alle Funktionen und Aliase Import-Module MyModule
Standardmäßig ist Powershell so konfiguriert, dass keine Skripts aus Dateien ausgeführt werden. Daher müssen Sie die Sicherheitseinstellungen ändern. Set-ExecutionPolicy Unrestricted
bringt Sie in Schwung, wenn Sie nicht besorgt sind, dass Skripte signiert werden müssen.
Module werden hoffentlich ein paar Probleme lösen. Im Moment können wir mit dot sourcing Funktionen, Variablen und Skripts in den globalen Bereich einer PowerShell-Sitzung integrieren.
Das Problem ist, dass dies Ihre Sitzung mit allen Arten von globalen Variablen und Hilfsfunktionen, die ein Endbenutzer möglicherweise nicht direkt benötigt / braucht, verschmutzen kann.
Module ermöglichen es Ihnen als Autor, Skripte zu erstellen und nur bestimmte Funktionen / Variablen für den Endbenutzer des Moduls verfügbar zu machen.
Sie ersetzen auch im Wesentlichen das Konzept eines PSSnapin. Sie können Add-Module Some.dll verwenden, um eine Assembly hinzuzufügen, die Cmdlets enthält.
Was wirklich cool ist, ist das sogenannte Modulmanifest. Dies ist eine Hash-Tabelle, die im Grunde alle Arten von Abhängigkeiten sowie Autor, Name, GUID-ID und Versionsnummer angibt. Wenn ein Benutzer ein Modul mit einem Modulmanifest lädt, prüft es alle Abhängigkeiten und führt alle Skripts aus, die der Modulautor für notwendig hält.
Es sollte eine anständige Dokumentation darüber geben, wenn CTP3 ausgeliefert wird.
Hoffe, dass hilft ein bisschen.
Andy
Windows PowerShell v2.0: TFM (sapienpresse.com) enthält Informationen und Beispiele in einem der Kapitel. Es ist als E-Book verfügbar, das aktualisiert wird, sobald neue CTPs veröffentlicht werden. Ich habe auch über ConcentratedTech.com über sie gebloggt, und es gab Diskussionen auf PowerShellCommunity.org in den Foren.
Tags und Links powershell