Scripts

Dateien vergleichen in PowerShell

Dateien vergleichen mit PowerShellPowerShell bietet mehrere Möglichkeiten, um Dateien auf ihre Gleichheit bzw. auf Ab­weichungen zu untersuchen. Abhängig davon, ob man mit der bloßen Information zufrieden ist, dass zwei Dateien (nicht) identisch sind oder ob man die Unterschiede im Einzelnen sehen möchte, verwendet man Get-FileHash oder Compare-Object.

Weiterlesen »

Set-Location, pushd, popd: Verzeichnis und Registry-Position wechseln in PowerShell

Zu den fundamentalen Kommandos in jeder interaktiven Shell gehören jene, mit denen man sich durch Verzeichnisbäume bewegen kann. In PowerShell dient das Cmdlet Set-Location diesem Zweck, wobei es auch in der Lage ist, durch die hierarchische Datenbank der Registry zu navigieren. Ergänzend zu Set-Location gibt Get-Location Auskunft über das aktuelle Verzeichnis. Pop-Location und Push-Location verwalten den Stack für gespeicherte Directories.

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 »

Gültigkeitsbereich (Scope) von Variablen in PowerShell

Gültigkeits­bereiche von PowerShell-VariablenWie in den meisten fortgeschrittenen Script- und Program­mier­sprachen hängt die Verfügbarkeit von Variablen auch bei PowerShell vom jeweiligen Kontext ab. Eine unglückliche Wahl von Variablennamen kann daher im Zusammenspiel mit verschachtelten Gültigkeits­bereichen zu verwirrenden Ergebnissen führen.

Weiterlesen »

Ausstehende Reboots nach Updates prüfen mit PowerShell und reg.exe

Windows macht auf einen bevorstehenden Neustart aufmerksam.Die meisten Windows-Updates erfordern einen Neustart des Systems. Während dieser auf dem Client per Voreinstellung automatisch erfolgt und der Benutzer ausgiebig darauf hingewiesen wird, sind die Verhältnisse auf dem Server nicht immer so offensichtlich. Will man sich Klarheit über anstehende Reboots verschaffen, dann kann man dies (besonders unter Server Core) via Kommandozeile tun.

Weiterlesen »

Hyper-V: Nicht benutzte VMs finden mit PowerShell

Letztes Einschalten einer VM mit PowerShell ermitteln.Neue virtuelle Ma­schi­nen lassen sich mit geringem Aufwand ein­richten, so dass man sie oft nur für den kurzfristigen Gebrauch erstellt. Anschließend geraten solche VMs leicht in Vergessenheit. Mit PowerShell kann man anzeigen, wann eine VM das letzte Mal ein- oder ausgeschaltet wurde.

Weiterlesen »

Zufallszahlen, temporäre Dateinamen und GUIDs erzeugen in PowerShell

ZufallszahlenIn Scripts benötigt man gelegentlich zufällig generierte Werte, seien es Zahlen, Namen für temporäre Dateien oder GUIDs für eindeutige Registry- bzw. Datenbank­schlüssel. PowerShell bietet eigene Funktionen für solche Zufallswerte.

Weiterlesen »

Variablen in PowerShell: Namen, Werte, Datentypen

Variablen in PowerShellDer Zweck von Variablen besteht bekanntlich darin, Werte zu speichern, um später im Code darauf zugreifen zu können. Auch hier bietet PowerShell weit mehr Möglichkeiten als der veraltete Batch-Interpreter und kann sich mit anderen modernen Script-Sprachen messen.

Weiterlesen »

VHDs auslesen mit PowerShell: Größe, Speicherort, Typ, Fragmentierung

VHD und VDHX mit Hyper-VDie x86-Virtualisierung erlaubt das Anlegen von virtuellen Maschi­nen mit wenigen Mausklicks. Entsprechend schnell vermehrt sich in vielen Umgebungen die Zahl der virtuellen Laufwerke. PowerShell kann helfen, den Überblick über die vorhandenen VHD(X)-Dateien zu bewahren.

Weiterlesen »

Arrays in PowerShell: anlegen, ändern, auslesen, sortieren, löschen

Arrays in PowerShellWie fast jede moderne Script-Sprache kennt auch PowerShell den Datentyp Array. Er erfüllt auch hier die Aufgabe, zusammengehörige Werte in einer Variablen zu versammeln, wo man sie dann über einen Index ansprechen kann. Im Vergleich zu VBScript sind Operationen mit Arrays flexibler und in der Regel syntaktisch einfacher.

Weiterlesen »