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/