Scripts

    Mitgliedschaft eines Users in Active-Directory-Gruppen ausgeben

    Ein AD-User kann neben seiner primären Gruppe Mitglied in anderen Gruppen sein. Dafür gibt es im AD die Attribute PrimaryGroup und MemberOf, die per Get-AdUser gemeinsam abgefragt werden. Die Abfrage selber ist sehr einfach, die Schwierigkeit für alle, die bei der PowerShell erst am Anfang stehen besteht darin, die Namen zu einer einzigen Ausgabe zusammenzufassen.

    Große Dateien kopieren mit BITS und Powershell

    Für das Kopieren von (großen) Dateien hat die PowerShell (zwangsläufig) einiges zu bieten. Neben dem etwas schlichten Copy-Item-Cmdlet (das z.B. keine Anmeldung an eine Freigabe ermöglicht) stehen die Windows-Befehle XCopy und der inoffizielle Nachfolger RoboCopy (für „Robust Copy“) zur Auswahl. Beide werden exakt auf dieselbe Art und Weise aufgerufen, wie innerhalb der "regulären" Befehlszeile.

    Den letzten Tag eines Monats berechnen

    Der administrative Alltag mit der PowerShell wird nicht nur die großen Herausforderungen in den Themenbereichen ActiveDirectory, Exchange Server 2010, HyperV oder VMWare geprägt, sondern auch durch die vielzitierten Kleinigkeiten, über die man sich als PowerShell-Anwender, der am Anfang steht und den "Guru-Status" noch nicht erreicht hat, lange den Kopf zerbrechen kann.

    Hier eine Kostprobe: Wie lässt das Datum des letzten Wochentags eines Monats ermitteln? Konkret: Welches Datum besitzt der letzte Samstag im Februar?

    Authentifizierung und Verarbeitung von Credentials in PowerShell

    PowerShell-Cmdlets ermöglichen für Zugriffe über das Netzwerk verschiedene Formen der Authenti­fizierung. Neben Kerberos, das standardmäßig für die Anmeldung an eine Domäne verwendet wird, ist die Authentifizierung über Benutzername und Kennwort die gebräuchlichste Form der Authenti­fizierung (der Standard­wert für den Authentication-Parameter, den es bei 18 der insgesamt 236 Cmdlets gibt, lautet „Default“).

    Bei allen auf WS-Management basierenden Cmdlets wie Invoke-Command oder New-PsSession ist über den CertificateThumbprint-Parameter auch eine Authentifizierung über ein Zertifikat möglich (allerdings kann dieses Zertifikat nur einem lokalen Benutzerkonto zugeordnet werden, was die Bedeutung dieser Authenti­fizierungs­varianten deutlich einschränkt).

    Prozess-ID und Name von Diensten auslesen mit eigenen Powershell-Properties

    Die Stärken der PowerShell liegen in der Leichtigkeit, mit der sich neue Objekte definieren und vorhandenen Objekte neue Properties anhängen lassen. Das Ganze ist viel einfacher, als es sich zunächst anhört. Hat man den sprichwörtlichen Bogen erst einmal raus, ergeben sich unzählige Möglichkeiten beliebige Ergebnisse über eine individuelle Property an einen Objekt-Output anzuhängen.