PowerShell-Module: Ein Anfängerleitfaden zur Erweiterung der Funktionalität

Die Gebäudeautomation mit PowerShell mag zunächst überwältigend erscheinen, aber wie bei jedem großartigen Unterfangen geht es darum, Schritt für Schritt vorzugehen. Stellen Sie sich PowerShell als eine Sammlung von Bausteinen vor, wobei Module das Fundament sind, das ihre Funktionalität zum Leben erweckt.

In diesem Artikel werden Sie entdecken, was PowerShell-Module sind, wie man sie findet und wie man sie nutzt, um Ihre Automatisierungsaufgaben zu optimieren. Von der Verwaltung virtueller Maschinen bis zur Verbindung mit Cloud-Diensten oder der Automatisierung von Active Directory machen Module all dies möglich.

Lesen Sie weiter, um das volle Potenzial von PowerShell zu entfalten und Ihre Aufgaben präzise zu bewältigen!

Verfügbare PowerShell-Module entdecken

PowerShell-Module sind essentielle Bausteine, die ihre Funktionalität erweitern. Aber nicht alle Module werden automatisch in Ihre Sitzung geladen – sie bleiben oft auf Ihrem System und warten darauf, entdeckt zu werden.

Um die auf Ihrem System installierten Module zu erkunden, verwenden Sie den Befehl Get-Module:

Get-Module

Sie werden möglicherweise eine kurze Liste von Modulen bemerken. Der Grund dafür ist, dass Get-Module nur die bereits in Ihre Sitzung importierten Module anzeigt.

Um alle verfügbaren Module auf Ihrem System zu sehen, einschließlich der noch nicht geladenen, fügen Sie den Parameter -ListAvailable hinzu:

Get-Module -ListAvailable

Dieser Befehl listet alle Module auf, die auf Ihrem System verfügbar sind, unabhängig davon, ob sie im Speicher geladen sind oder nicht. PowerShell importiert Module automatisch, während Sie Befehle aus ihnen verwenden, sodass Sie sie normalerweise nicht manuell laden müssen.

Module können verschiedene Typen haben – Skript, Binär oder Manifest.

Um Module nach Typ zu gruppieren, um eine einfachere Inspektion zu ermöglichen, versuchen Sie Folgendes:

gmo -ListAvailable | group ModuleType

Hier verwenden Sie Aliasnamen zur Vereinfachung.

Zum Beispiel ist gmo eine Kurzform für Get-Module, und group ist ein Alias für Group-Object. Aliasnamen sparen Zeit, wenn Sie Befehle in der Konsole ausführen.

Aufdecken von Modulversionen und Befehlsdetails

Jedes Modul hat eine Version, die den Funktionsumfang oder Änderungen im Laufe der Zeit darstellt. Die Versionierung ermöglicht es Ihnen, Updates zu verwalten oder bei Bedarf auf eine vorherige Version zurückzukehren.

Module enthalten auch Befehle, die über die Eigenschaft ExportedCommands zugänglich sind.

Um die Befehle im Microsoft.PowerShell.Management Modul anzuzeigen, führen Sie aus:

gmo Microsoft.PowerShell.Management | Select-ExpandProperty ExportedCommands

Dieser Befehl zeigt eine Liste der im Modul verfügbaren Befehle an.

Lokalisieren von Modulverzeichnissen

Module funktionieren nicht magisch in PowerShell—sie befinden sich in bestimmten Verzeichnissen auf Ihrem System, und PowerShell muss wissen, wo sie zu finden sind.

Um die Standorte der verfügbaren PowerShell-Module anzuzeigen:

gmo -list

Übliche Standorte sind:

  • C:\Program Files\PowerShell\7\Modules
  • C:\Program Files\WindowsPowerShell\Modules
  • C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

Sogar beim Ausführen von PowerShell Core können Module aus Windows PowerShell-Verzeichnissen weiterhin erscheinen, da PowerShell Core sie verwenden kann.

Module haben spezifische Kategorien nach ihrer PSEdition Eigenschaft, die die Kompatibilität angibt:

  • Core – Entwickelt für PowerShell Core.
  • Schreibtisch – Entworfen für Windows PowerShell.
  • Beide – Kompatibel mit beiden Editionen.

Verwalten der PSModulePath Variablen

PowerShell sucht nicht automatisch in Ihrem gesamten System nach Modulen – es verlässt sich auf spezifische Pfade, die durch die Umgebungsvariable PSModulePath definiert sind. Wenn ein Modul nicht in einem dieser Pfade vorhanden ist, findet PowerShell es nicht, selbst wenn das System/sie es anderswo installiert haben.

Um die PSModulePath Umgebungsvariable anzuzeigen:

$env:PSModulePath

Die Variable enthält eine durch Semikolons getrennte Liste von Verzeichnissen.

Zur besseren Lesbarkeit teilen Sie sie in ein Array auf:

$env:PSModulePath -split ';'

PowerShell sucht nach Modulen in:

  • Benutzerebene-Verzeichnissen (z. B. im Dokumentenordner Ihres Benutzerprofils).
  • Gemeinsame Verzeichnisse in Program Files.
  • Systemebene-Verzeichnissen, wie C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules.

Sie können auch benutzerdefinierte Verzeichnisse zum Suchpfad hinzufügen:

$env:PSModulePath + ';C:\MyNewModulePath'
$env:PSModulePath

Diese Änderung gilt für die aktuelle Sitzung und weist PowerShell an, nach Modulen im angegebenen Pfad zu suchen.

Fazit

In diesem Artikel haben Sie untersucht, wie Sie verfügbare Module entdecken, ihre Versionen anzeigen, ihre Befehle inspizieren und ihre Speicherverzeichnisse lokalisieren können. Sie haben auch gelernt, wie Sie die Umgebungsvariable PSModulePath nutzen können, um anzupassen, wo PowerShell nach Modulen sucht.

Diese grundlegenden Fähigkeiten ermöglichen es Ihnen, das volle Potenzial von PowerShell für Ihre Automatisierungsaufgaben auszuschöpfen. Setzen Sie dieses Wissen weiterhin in die Praxis um. Beginnen Sie damit, die bereits auf Ihrem System verfügbaren Module zu erkunden und diejenigen zu identifizieren, die Ihren aktuellen Bedürfnissen entsprechen.

Mit einem tiefergehenden Verständnis von Modulen werden Sie bereit sein, komplexe Automatisierungsherausforderungen selbstbewusst und effizient anzugehen!

Source:
https://adamtheautomator.com/powershell-modules-guide/