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.

    Get-Service: Windows-Dienste anzeigen mit PowerShell

    Programme, die als Windows-Service laufen, lassen sich traditionell über das MMC-Snap-in Dienste auflisten und verwalten. Schneller geht das oft mit PowerShell, das zu diesem Zweck eigene Cmdlets bietet. Wie gewohnt, lässt sich die Ausgabe von PowerShell-Befehlen zudem weiterverarbeiten, beispielsweise sortieren, filtern und als Input an andere Cmdlets durchreichen.

    Schneller Speicher mit NVMeOF: StarWind Virtual SAN als Target konfigurieren

    StarWind VSAN als NVMeOF-TargetStarWind Virtual SAN kann NVMe-Speicher mit gerin­gen Laten­zen über das Netz­werk bereit­stellen. Zu diesem Zweck konfi­guriert der Admin NVMeOF-Targets (NVMe over Fabrics) in der VSAN-Konsole, und Clients sprechen sie dann mittels Initiator an. Das NVMeOF-Proto­koll be­nötigt dabei die RDMA-Technologie.*

    Bytes in Megabytes und Gigabytes umrechnen in PowerShell

    Wenn man Systeminformationen wie etwa den freien Plattenplatz über WMI abfragt, dann erhält man die Angaben in Bytes. Das Gleiche gilt bei Get-ChildItem, dem Äquivalent zum dir-Befehl, das Dateigrößen ebenfalls nur in Bytes anzeigt. Gerade bei großen Werten ist diese aber nicht besonders nützlich. PowerShell bietet aber einfache Möglichkeiten, Bytes in Megabytes oder Gigabytes zu konvertieren.

    Umgebungsvariablen setzen, anzeigen und löschen mit PowerShell

    Wie alle anderen Programme erhält auch PowerShell beim Start eine Kopie des Master-Environments mit allen darin enthaltenen Variablen. Diese kann man auslesen, neue setzen oder vorhandene löschen. Wie schon bei cmd.exe oder anderen Shells wirken sich diese Operationen nur auf die aktuelle Instanz von PowerShell aus.

    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?

    PowerShell-Cmdlets suchen mit Get-Command und Get-Module

    Microsoft sieht PowerShell als Script-Umgebung und Kommandozeile, die praktisch alle Komponenten und Funktionen des Systems verwalten soll. Entsprechend groß ist der Umfang an Kommandos (Cmdlets) und er wächst mit Windows 8 und Server 2012 noch erheblich. Hinzu kommen Module für die Administration von Anwendungen wie Sharepoint oder für Software von Drittanbietern (z.B. VMware PowerCLI). Zum Glück bietet PowerShell die Mittel, um sich in den zahlreichen Cmdlets zurechtzufinden.

    Get-Process, Stop-Process: Prozesse anzeigen und beenden in PowerShell

    Um aktive Prozesse anzuzeigen und nicht mehr reagierende Programme zu beenden, hat sich unter Windows der Task-Manager als das bevorzugte Tool etabliert. Die PowerShell ist für diese Aufgaben jedoch in vielen Fällen flexibler und effizienter. Zuständig sind dafür die Cmdlets Get-Process und Stop-Process.

    Netzlaufwerke verbinden mit Powershell und net use

    Für das Verbinden eines Netzwerklaufwerks mit einer Freigabe hat die PowerShell nichts zu bieten. Da dies aber eine wichtige Aufgabe von Login-Skripts ist, muss es natürlich auch dafür eine PowerShell-Lösung geben.

    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.

    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.

    Seiten