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:
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…