Scripts

Where-Object: Daten filtern in PowerShell

Filter in PowerShellDas Ergebnis eines Cmdlets ist oft eine große Sammlung von Objekten, von denen man jedoch meistens nur einige braucht. Als Filter dient in diesen Fällen das Cmdlet Where-Object (Alias Where oder ?), an das man den Output über eine Pipe weiterleitet. Seit PowerShell 3.0 unterstützt es eine vereinfachte Syntax.

Weiterlesen »

Select-Object: Eigenschaften von Objekten in PowerShell filtern

Powershell-LogoPowerShell kann mit Hilfe seiner zahlreichen Cmdlets fast alle Systeminformationen auslesen. Häufig erhält man dabei mehr Daten, als man benötigt und vernünftig darstellen kann. Aus diesem Grund bietet PowerShell die Möglichkeit, ausgewählte Attribute von Objekten mit Hilfe von Select-Object zu extrahieren.

Weiterlesen »

Schleifen in PowerShell: For, Foreach, While, Do-Until, Continue, Break

Powershell-LogoWie die meisten prozeduralen Programmier­sprachen verfügt auch PowerShell über eine ganze Palette von Schleifenkonstruktionen sowie ergänzende Anweisungen zur Steuerung von Iterationen. Eine Besonderheit besteht darin, dass neben foreach noch Foreach-Object existiert, um über Elemente eines Arrays zu iterieren.

Weiterlesen »

Rollen und Features installieren mit PowerShell

Rollen und Features hinzufügenSeit Windows Server 2008 erbringt ein frisch installiertes System bekanntlich keine Dienste, vielmehr müssen die benötigten Funktionen über Rollen und Features erst aktiviert werden. Auf der GUI ist dafür der Server Manager zuständig. Diese Aufgabe lässt sich aber auch mit PowerShell automatisieren und auf Remote-PCs sowie auf VHDs anwenden.

Weiterlesen »

GPOs analysieren mit PowerShell: Nicht verlinkte und leere Objekte, WMI-Filter

GruppenrichtlinienEine Reihe von Cmdlets, die im Modul GroupPolicy zusammengefasst sind, helfen dabei, den Überblick über vorhandene GPOs zu behalten und sie zu administrieren. Mit ihrer Hilfe kann man etwa jene anzeigen lassen, die mit keiner Domäne oder OU verlinkt sind, die keine Einstellungen enthalten oder die deaktiviert wurden.

Weiterlesen »

Reguläre Ausdrücke (RegEx) in PowerShell verwenden

Reguläre Ausdrücke in PowerShellDie Unterstützung für reguläre Ausdrücke gehört zum Pflichtprogramm für eine moderne Script-Sprache. PowerShell bietet mehrere Sprach­konstrukte, die eine Verwendung von RegEx zulassen. Bei der syntaktischen Umsetzung orientierte sich Microsoft - anders als etwa bei Word - weitgehend an Perl, so dass für die meisten RegEx-erfahrenen Anwender der Lernaufwand gering bleibt.

Weiterlesen »

BIOS- und UEFI-Einstellungen in Hyper-V auslesen mit PowerShell

Hyper-V gewährt Zugriff auf nur wenige BIOS-Einstellungen, aber diese lassen sich mit PowerShell bearbeiten.Wie andere Hypervisor emuliert auch Hyper-V das BIOS in virtuellen Maschinen, und bei VMs der Generation 2 die UEFI-Firmware. Microsoft gewährt dabei nur Zugang zu wenigen Einstellungen, eine der wichtigsten ist jene zur Boot-Reihenfolge der Datenträger. PowerShell kann die BIOS- und UEFI-Konfiguration einfach auslesen und verändern.

Weiterlesen »

Drucker-Einstellungen auslesen mit PowerShell: IP-Adresse, Treiber, Print-Jobs

GerPowerShell bietet mehrere Cmdlets, um Drucker zu verwalten. Jene mit dem Verb Get im Namen lassen sich erwartungsgemäß dafür nutzen, installierte Drucker zu ermitteln und ihre Konfiguration zu untersuchen. Dese funktioniert nicht nur lokal, sondern auch für Remote-PCs.

Weiterlesen »

Rename-Computer: PCs remote umbenennen mit PowerShell

Remote-ManagementWenn man Remote-PCs in der Vergangenheit von der Kommandozeile oder in Scripts umbenennen wollte, dann waren WMI oder netdom die Mittel der Wahl. Windows 8 und Server 2012 führten für diesen Zweck mit PowerShell 3.0 ein eigenes Cmdlet namens Rename-Computer ein, das diese Aufgabe vereinfacht.

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 »