Module komplett

Ziel: die dargestellten Modul-Basics mit Hilfe von weiteren Moduldateien automatisch in die PowerShell-Umgebung des Benutzers einbinden und mit weiteren Funktionen und Techniken erweitern können.

Für die inhaltliche und technische Beschreibung wird ein Modul-Manifest erstellt und konfiguriert.

Hier eine exemplarische Kurzanleitung:

Module komplettieren

Module erstellen (inkl. Manifest)

Beachten: bei Änderungen an den Modul-Techniken und Inhalten kann das Caching der PowerShell zum Problem werden. Hier kann man durch „forciertes manuelles“ Laden der Module gegensteuern.

Import-Modul .\Ordner-des-Moduls -Force

Für das Erweitern der eigenen Modultechniken kann jetzt noch eine Modul-Manifest-Datei angelegt werden:

New-ModuleManifest $HOME\Documents\WindowsPowerShell\Modules\MyTools\MyTools.psd1

Diese Manifestdatei muss jetzt an wichtigen Stellen mit Inhalten gefüllt werden. Für eine spätere Veröffentlichung in Repositories sollten auch individuelle Autoreninfos ausgefüllt werden.

Wichtige Inhalte der Manifest-Datei (technisch: eine Hashtabelle!)

  • RootModule (in PS 2.0: ModuleToProcess !!)

  • ModuleVersion

  • Author

  • Company

  • Copyright

  • FunctionsToExport

  • CommandsToExport

  • VariablesToExport

  • AliasesToExport

Manifestdatei ist - wie bereits gesagt - eine Hashtabelle und wird so auch technisch genutzt und kann entsprechend analysiert werden.

PS E:\_temp> $path = $HOME\Documents\WindowsPowerShell\Modules\MyTools\MyTools.psd1
PS E:\_temp> $content = Get-Content -Path $path -Raw
PS E:\_temp> $info = Invoke-Expression $content#
# Informationen dann mit:
PS E:\_temp> $info
PS E:\_temp> $info.Author
# Testen des Manifests mit:
PS E:\_temp> Test-ModuleManifest -Path $path

Die Wirkungsweise beim Laden des Moduls kann man mit „verbose“ beim Importieren darstellen:

Import-Module -Name MyTools -Verbose -Force

Weitere Verbesserungsmöglichkeit für Module:

  • ETS (Extended Type System) - festlegen der Formatierungs- und Typdefinitionen für Funktionen

  • …tbc…