Scripts

    Get-ChildItem: Dateien anzeigen in PowerShell

    Im Gegensatz zu Visual Basic Script ist PowerShell nicht nur eine Script-Umgebung, sondern auch eine interaktive Shell. Daher möchte man dort Äquivalente zu den in cmd.exe tagtäglich genutzten Befehlen finden. Das Gegenstück zum Allerweltskommando dir ist in Powershell Get-ChildItem, nur mit dem Unterschied, dass es wesentlich mehr kann.

    Wörter und Zeichen zählen mit PowerShell

    Die PowerShell bietet alle wesentlichen Werkzeuge zur Bearbeitung und Analyse von Textdateien. Dazu zählt nicht nur die Suche nach dem Vorbild von grep mit select-string, sondern auch das Zählen von Zeichen, Wörtern und Zeilen nach dem Muster von wc unter Unix.

    Virtuelle Maschinen mit Near CDP kontinuierlich sichern

    Near CDP in Altaro VM BackupModerne Backup-Tools für virtu­elle Maschinen können die Inter­valle zwischen den Sicherungen auf wenige Minuten redu­zieren. Diese Fähig­keit wird häufig als Near Continuous Data Protection (CDP) be­zeichnet. Damit lässt sich der Recovery Point Objective (RPO) gering halten, ohne den Speicher­bedarf über­mäßig zu erhöhen.*

    Get-Content: Dateien einlesen mit Powershell

    Den Inhalt einer Text­datei einzulesen und zu filtern gehört zu den Standard­aufgaben in der System­verwaltung, sei es inner­halb von Scripts oder auf der Kommando­zeile. Auch hier hat Powershell mit dem Cmdlet Get-Content mehr zu bieten als Uralt-Kommandos wie type.

    Select-String: In Dateien suchen mit PowerShell

    Windows besitzt mit find und findstr bereits 2 Kommandozeilen-Tools, mit denen man Textdateien durchsuchen kann. Das PowerShell-eigene Mittel für diesen Zweck ist indes Select-String, das gegenüber den alten Dienstprogrammen einige wesentliche Vorteile bietet. Da die PowerShell nicht nur eine Script-Umgebung, sondern auch eine interaktive Shell ist, empfiehlt sich Select-String als mächtigere Alternative zu den bisherigen Kommandozeilen-Tools.

    Registry-Schlüssel auslesen mit Powershell

    Registry-IconPowershell kann die Registrier­datenbank als Lauf­werk (PSDrive) zugäng­lich machen. Dies erlaubt die Navi­gation durch die hierar­chische Struktur der Registry wie bei einem Ver­zeichnis­system. Dabei las­sen sich Schlüssel und ihre Werte relativ ein­fach auslesen, filtern und in ver­schiedenen For­maten darstellen.

    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.

    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.

    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.

    Registry-Schlüssel hinzufügen und löschen mit Powershell

    Die Powershell verfügt über einen Provider für die Registrierdatenbank, so dass sich einzelne Teilbäume ("Hives") wie Laufwerke mounten lassen. Anschließend kann man durch die Verzeichnisstruktur navigieren wie im Dateisystem und dort neue Schlüssel anlegen oder vorhandene löschen.

    Screenshots erstellen mit der PowerShell

    Für die Fehlerbeschreibung ist ein Bildschirmfoto oft das aussagekräftigste "Beweismittel". Zwar gibt es (mit Sicherheit) zahlreiche Freeware-Tools, mit denen sich ein solcher "Screenshot" per Kommandozeile und damit auch aus einem PowerShell-Skript heraus anfertigen lässt (ein Tool ist Import aus der ImageMagick Library - http://www.imagemagick.org/script/import.php).

    Seiten