Module 101¶
Unsere einfachen Module bestehen aus:
Ordner mit ModulName
im Ordner gleichnamig
*.psm1
Datei: ModulName.psm1
Für die folgenden Erstellungen muss der PowerShell-Host (Tipp: ISE) die Funktion kennen!
Hier: Funktion Get-CriticalEvent – Fehler und Warnungen aus System-Ereignisprotokoll – letzte 48 Stunden).
PS E:\_temp> Get-CriticalEvent
TimeGenerated Message
------------- -------
16.10.2016 09:06:36 Benutzerdefinierte DLLs werden für jede Anwendung geladen. Systemadminis...
16.10.2016 09:06:28 Für ein Zeigegerät fehlen Informationen zum Monitor, mit dem es ...
...
Erstellung des Modulcontainers (Ordner) und der *
.psm1 Moduldatei:
Anm. zum Training: vor der Durchführung der Skriptzeilen bitte die einzelnen Zeilen analysieren!
1$name = "Get-CriticalEvent"
2$path = Split-Path -Path $profile
3$code = "function $name { $((Get-Item function:\$name).Definition) }"
4New-Item -Path $path\Modules\$name\$name.psm1 -ItemType File -Force -Value $code
Erster Test für die Verfügbarkeit des Cmdlet per Modul:
PS E:\_temp> Get-Module get-cr* -ListAvailable
Verzeichnis: C:\Users\joebr_000\Documents\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 0.0 Get-CriticalEvent Get-CriticalEvent
Ab jetzt erkennen auch die anderen PowerShell-Hosts den neuen Befehl und nach einem Aufruf des Befehls werden auch die Modul-Infos (ohne –ListAvailable) ausgegeben.
Analysen mit Get-Module
PS E:\_temp> Get-Module
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Computer, Add-Content, Checkpo...}
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variab...}
Script 1.0.0.13 PSReadline {Get-PSReadlineKeyHandler, Get-PSRe...
PS E:\_temp> Get-CriticalEvent -ShowWindow
PS E:\_temp> Get-Module
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 0.0 Get-CriticalEvent Get-CriticalEvent
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Computer, Add-Content, Checkpo...}
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variab...}
Script 1.0.0.13 PSReadline {Get-PSReadlineKeyHandler, Get-PSRe...
Ausführliche Darstellung der aktuellen Modultechniken bei Weltner …