Africa Studio - stock.adobe.com

PowerShell-Module, die jeder Admin kennen sollte

Berechtigungen abfragen, installierte Updates kontrollieren oder den WSUS-Server synchronisieren, mit den richtigen PowerShell-Modulen lässt sich vieles automatisieren.

Die PowerShell-Community ist sehr lebendig und viele Entwickler erstellen PowerShell-Module, die bei der täglichen Arbeit in IT-Abteilungen hilfreiche Dienste leisten können. Die Mehrzahl der PowerShell-Module aus der Community befinden sich im zentralen Repository der PowerShell, in der PowerShell Gallery. Aber auch auf GitHub finden sich spannende Module und Skripte. Nachfolgend haben wir exemplarisch einige zusammengestellt.

PSWindowsUpdate – Windows Updates vewalten

Das Verteilen von Windows Updates in Unternehmen funktioniert meist nie ganz ohne Probleme und kann sich beliebig komplex gestalten. Hier kann das PSWindowsUpdate-Modul unter Umständen hilfreich sein. Admins können sich so den Verlauf der Update-Installation anzeigen lassen, ebenso wie noch ausstehende Updates auflisten. Updates können lokal und auch aus der Ferne installiert werden und selbige lassen sich auch deinstallieren.

Eines der besonders nützlichen Cmdlets in dem Modul PSWindowsUpdate ist Get-WULastResults. Dieses ruft das letzte Ergebnis einer Windows-Update-Suche und den Installationsstatus ab.

Abbildung 1: Per Cmdlet kann man einfach abfragen, wie das Ergebnis der letzten Windows-Update-Suche verlaufen ist.
Abbildung 1: Per Cmdlet kann man einfach abfragen, wie das Ergebnis der letzten Windows-Update-Suche verlaufen ist.

Das Cmdlet Get-WUInstall installiert Updates und kann dabei nach bestimmten Update-Kategorien und KnowledgeBase-Updates filtern. Im gezeigten Beispiel wird das Updates KB4034658 installiert.

Abbildung 2: Über das Cmdlet Get-WUinstall kann man ganz gezielt ein bestimmtes Update installieren.
Abbildung 2: Über das Cmdlet Get-WUinstall kann man ganz gezielt ein bestimmtes Update installieren.

PoshWSUS – Unterstützung für den WSUS-Server

Bei PoshWSUS handelt es ich um ein Modul für die Verwaltung der populären Windows Server Update Services (WSUS). Mit diesem Modul kann man auf dem WSUS-Server installierte Updates suchen, Updates genehmigen oder auch ablehnen sowie die WSUS-Konfiguration ändern.

So gibt es hier eine praktische Möglichkeit, den Umgang mit Vorschau-Updates zu automatisieren. Das gezeigte Beispiel fragt den WSUS-Server nach Updates ab, die die Zeichenkette „Preview of“ enthalten und nicht bereits abgelehnt wurden und leitet diese zur Ablehnung an Deny-PoshWSUSUpdate weiter.

Abbildung 3: Hier wird gezielt nach Preview-Updates gesucht, um diese automatisiert abzulehnen.
Abbildung 3: Hier wird gezielt nach Preview-Updates gesucht, um diese automatisiert abzulehnen.

Eine wichtige Aufgabe bei der Verwendung von WSUS ist die Synchronisation von Updates zwischen den Microsoft-Servern und den eigenen internen WSUS-Servern. Dies lässt sich im gezeigten Beispiel mit Cmdlet Start-PoshWSUSSync bewerkstelligen.

 

Abbildung 4: Ganz einfach den eigenen WSUS-Server mit Microsoft Update per Cmdlet synchronisieren.
Abbildung 4: Ganz einfach den eigenen WSUS-Server mit Microsoft Update per Cmdlet synchronisieren.

Und da die PowerShell es ja einfach ermöglicht, Cmdlets in Skripts zu kombinieren, kann man beispielsweise erst den WSUS synchronisieren und dann bestimmte Updates automatisiert ablehnen.

Carbon – Windows-Aufgaben automatisieren

Carbon gehört zu den besonders populären PowerShell-Modulen – und dies aus gutem Grund. Mit dem Modul lassen sich viele verschiedene Aufgaben erledigen. Das Modul interagiert mit Benutzern, Websites, Zertifikaten und Diensten gleichermaßen und lässt sich für viele Konfigurationsaufgaben unter Windows einsetzen.

Ein interessantes Cmdlet ist Get-CProgrammInstallInfo, das Informationen über installierte Programme liefert. Im gezeigten Beispiel liefert das Cmdlet Informationen über eine lokale Google-Chrome-Installation zurück. Hier sieht man Informationen wie Installationsdatum, den Quellpfad der Installation, die Sprache sowie den Uninstall String. Bei letzterem handelt es sich um die Zeichenfolge beziehungsweise den Befehl, mit dem die Software vom System deinstalliert wird.

Abbildung 5: Die detaillierten Informationen zu einer installierten Anwendung können auch bei Problemfällen hilfreich sein.
Abbildung 5: Die detaillierten Informationen zu einer installierten Anwendung können auch bei Problemfällen hilfreich sein.

Viele Anwendungen setzen ein installiertes .NET-Framework auf dem System voraus. Mit Carbon und dem Cmdlet Test-CDotNet kann man einfach überprüfen, ob Version 2 oder Version 4 des Frameworks installiert ist.

Abbildung 6: Per Cmdlet lässt sich klären, welche Version des .NET-Frameworks auf dem System tatsächlich installiert ist.
Abbildung 6: Per Cmdlet lässt sich klären, welche Version des .NET-Frameworks auf dem System tatsächlich installiert ist.

NTFSSecurity – Mit Berechtigungen arbeiten

Bereits die PowerShell unterstützt das Arbeiten mit NTFS-Dateiberechtigungen nativ. Das Modul NTFSSecurity bietet aber einen benutzerfreundlicheren Ansatz.

Es gibt immer gute Gründe für einen Admin, abzufragen, wie die effektiven Berechtigungen eines Benutzers für eine Datei oder einen Ordner aussehen. Diese effektiven Berechtigungen ergeben sich aus der Gruppenzugehörigkeit des Benutzers, vererbten Berechtigungen, verschachtelten Gruppen und abgelehnten Berechtigungen.

Im gezeigten Beispiel gibt das Cmdlet Get-NTFSEffectiveAccess die effektiven Berechtigungen des lokalen Pfades c:\temp aus.

Abbildung 7: Wer hat welche Berechtigungen für den Pfad, das Cmdlet Get-NTFSEffectiveAccess gibt Auskunft.
Abbildung 7: Wer hat welche Berechtigungen für den Pfad, das Cmdlet Get-NTFSEffectiveAccess gibt Auskunft.

Ebenfalls durchaus üblich ist es, den Besitzer einer Datei oder eines Ordners unter NTFS zu bestimmen. Im Beispiel ist es so, dass der Besitzer des Ordners c:\temp „Dan“ ist. Mit dem Cmdlet Get-NTFSSOwner lässt man sich den aktuellen Besitzer anzeigen.

Abbildung 8: Per Cmdlet kann man den Besitzer des Ordners c:\temp anzeigen.
Abbildung 8: Per Cmdlet kann man den Besitzer des Ordners c:\temp anzeigen.

Es befinden sich mehr als 3.000 Module in der PowerShell Gallery und die Community wird nicht müde, weitere zu veröffentlichen. Bei der Suche nach einer Möglichkeit, Aufgaben zu automatisieren, lohnt sich ein Blick in die Power Gallery allemal.

Nächste Schritte

Gratis-eBook: Die PowerShell praktisch einsetzen

Schnelleinstieg in PowerShell-Skripte

Mit der PowerShell Dateiserver und Rechte steuern

Erfahren Sie mehr über Serverbetriebssysteme