Scripts

Compress-Archive: ZIP-Dateien erstellen und entpacken mit PowerShell

ZIP-Archiv erstellenWährend PowerShell in der Vergangenheit ZIP-Dateien nur auf Umwegen erstellen konnte, erhält sie in der Version 5.0 zwei eigene Cmdlets, um Dateien zu komprimieren und zu entpacken. Sie bieten zwar nicht den Funktionsumfang voll­wertiger Packer, reichen für die meisten Zwecke aber ohne Weiteres aus.

Weiterlesen »

Funktionen in PowerShell: Parameter, Datentypen, Rückgabewerte

Funktion in PowerShellWie die meisten Programmier­sprachen kann auch PowerShell mehrere Statements zu einer Funktion zusammenfassen. Sie vereinfacht die Wiederverwendung von Code und hilft bei der Strukturierung von Scripts. Auch wenn Funktionen in PowerShell für die Benutzer von VBScript oder PHP auf den ersten Blick vertraut aussehen, so gibt es doch einige gravierende Unterschiede.

Weiterlesen »

Anmeldedaten für Active Directory mit PowerShell überprüfen

Möchte man feststellen, ob mit einem bestimmten Paar aus Benutzername und Kennwort die Anmeldung an einem ActiveDirectory möglich ist, dann kann man dies über PowerShell tun. Dazu muss man ein PrincipalContext-Objekt im Namespace System.DirectoryServices.AccountManagement anlegen. Er ist Bestandteil der Assembly-Bibliothek System.­DirectoryServices.­AccountManagement, die ihrereseits zur .NET 3.5-Laufzeit gehört.

Weiterlesen »

Wget-Pedant: HTTP-Download in PowerShell

Unix-Fans kennen das Wget-Kommando, das mit einem Aufruf den Inhalt einer Webseite herunterladen kann. Ein direktes Pendant gibt es bei der PowerShell nicht, aber wer in der Suchmaschine die Worte "Wget PowerShell" eingibt wird schnell fündig. Die meisten Lösungen basieren auf der WebClient-Klasse im Namespace System.Net, die sich sehr einfach ansprechen lässt.

Weiterlesen »

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.

Weiterlesen »

Get-Date: Datum berechnen und formatieren in Powershell

Ruft man das Cmdlet Get-Date ohne Argumente auf, dann gibt es nur das Systemdatum aus. Daraus soll man jedoch nicht den voreiligen Schluss ziehen, dass es sich dabei nur um die Powershell-Entsprechung zum date-Befehl von cmd.exe handelt. Vielmehr beherrscht es fast beliebige Datumsberechnungen und Datumsformate.

Weiterlesen »

Passwort-Einstellungen mit PowerShell: Kennwort läuft nie ab, Passwort nicht erforderlich

Kennwort läuft nie abDas Active Directory kennt eine ganze Reihe von Richtlinien für Kennwörter, die ein Administrator den Benutzern vorgeben kann. Manche davon sind jedoch mit Vorsicht zu genießen, beispiels­weise wenn Passwörter nie ablaufen oder wenn User gar ohne Kennwort Zugang zum System erhalten. PowerShell kann die betroffenen Konten einfach ermitteln und die entsprechenden Einstellungen ändern.

Weiterlesen »

Windows Explorer aus PowerShell im aktuellen Verzeichnis öffnen

Home-VerzeichnisAuch wenn man primär auf die Kommandozeile wechselt, weil man dort viele Aufgaben schneller erledigen kann als auf der GUI, so will man manchmal auch den umgekehrten Weg gehen. In diesem Fall ist es günstig, wenn man den Windows Explorer von der Kommandozeile aus direkt im passenden Verzeichnis öffnen kann.

Weiterlesen »

Copy-Item, Move-Item: Dateien kopieren und verschieben mit PowerShell

Powershell-LogoPowerShell bietet eine ganze Sammlung von Cmdlets für das Datei-Management. Für das Kopieren oder Verschieben von Dateien und Verzeichnissen sind Copy-Item bzw. Move-Item zuständig. Auch wenn die Befehle viele Optionen bieten, ist für grundlegende Features einige zusätzliche Handarbeit nötig.

Weiterlesen »

Mit PowerShell in Dateien schreiben: Redirect, tee, Out-File, Set-Content

In Datei speichernEin gängiges Anliegen beim Arbeiten auf der Kommandozeile besteht darin, dass man die Ausgabe von Befehlen in eine Datei schreiben möchte. PowerShell unterstützt wie schon cmd.exe die Umleitung der Ausgabe, jedoch mit mehr Optionen. Hinzu kommen Cmdlets, die noch weitere Features bieten.

Weiterlesen »