
PowerShell-Module – Strukturierte Wiederverwendbarkeit
PowerShell-Skripte wachsen schnell – besonders wenn man sie produktiv einsetzt. An einem gewissen Punkt reicht eine einfache .ps1
-Datei nicht mehr. Genau hier kommen PowerShell-Module ins Spiel. Sie helfen dabei, Code zu strukturieren, wiederverwendbar zu machen und sauber zu kapseln.
Vorteile von Modulen
- Wiederverwendbarkeit: Einmal geschriebene Funktionen können in beliebigen Skripten importiert werden
- Wartbarkeit: Funktionen sind sauber getrennt und zentral anpassbar
- Struktur: Kein Chaos mehr aus Copy-Paste-Codeblöcken
- Autovervollständigung: Geladene Module sind in der PowerShell vollständig dokumentier- und nutzbar
- Versionierung: Ermöglicht Updates und Kompatibilitätsprüfungen
Ein einfaches Modul schreiben
Ein Modul ist im einfachsten Fall eine Datei mit der Endung .psm1
, die PowerShell-Funktionen enthält:
MyTools.psm1
function Get-Greeting {
param([string]$Name)
return "Hallo $Name!"
}
function Add-Numbers {
param([int]$A, [int]$B)
return $A + $B
}
Optional kann man eine zugehörige Manifest-Datei (.psd1
) erstellen – dazu gleich mehr.
Modul verwenden
1. Modul in einen bekannten Pfad legen
Beispiel: Eigene Module liegen unter
$HOME\Documents\PowerShell\Modules\MyTools\MyTools.psm1
2. Importieren
Import-Module MyTools
Oder direkt mit Pfadangabe:
Import-Module "C:\Scripts\MyTools.psm1"
3. Verwenden
Get-Greeting -Name "Jens"
Add-Numbers -A 2 -B 3
4. Alle verfügbaren Funktionen auflisten
Get-Command -Module MyTools
Modul mit Manifest erstellen (optional, empfohlen)
Ein Manifest definiert Metadaten zum Modul: Name, Version, Abhängigkeiten usw.
New-ModuleManifest -Path "MyTools.psd1" -RootModule "MyTools.psm1" -Author "Jens Dunzweiler" -Description "Hilfsfunktionen für tägliche Aufgaben" -ModuleVersion "1.0.0"
Die .psd1
-Datei kann dann gemeinsam mit dem Modul geladen werden – PowerShell erkennt sie automatisch.
Modul veröffentlichen (lokal oder online)
Lokal:
Kopiere dein Modul nach
$env:PSModulePath
Beispiel:
mkdir "$HOME\Documents\PowerShell\Modules\MyTools"
Copy-Item .\MyTools.ps* "$HOME\Documents\PowerShell\Modules\MyTools\"
Online (PowerShell Gallery):
Falls du Module öffentlich bereitstellen willst, kannst du sie in die PowerShell Gallery hochladen. Voraussetzung: ein gültiges NuGet-API-Key und Modul mit Manifest.
Publish-Module -Name MyTools -NuGetApiKey "<dein Key>"
Fazit
PowerShell-Module bringen Struktur, Ordnung und Wiederverwendbarkeit in deine Skripte. Egal ob für private Admin-Tools oder öffentliche Pakete – wer regelmäßig mit PowerShell arbeitet, sollte sich früh damit befassen. Ein gutes Modul-Setup spart Zeit, reduziert Fehler und macht komplexe Projekte langfristig wartbar.