Scripts

    Fehler in PowerShell vermeiden mit dem Strict Mode

    PowerShell Set-StrictModeWie die meisten dyna­mischen Programmier­sprachen lässt auch Power­Shell dem Benutzer viele Frei­heiten. Das ver­einfacht die schnelle Ent­wicklung kur­zer Scripts, fördert aber salop­pen Pro­grammier­stil und daraus resul­tierende Pro­bleme. Der Strict Mode beseitigt einige typische Fehler­quellen in PowerShell.

    Gültigkeitsbereich (Scope) von Variablen in PowerShell

    Gültigkeits­bereiche von PowerShell-VariablenWie in den meisten fort­geschrittenen Script- und Program­mier­sprachen hängt die Verfüg­barkeit von Varia­blen auch bei Power­Shell vom jewei­ligen Kon­text ab. Eine unglück­liche Wahl von Variablen­namen kann daher im Zusammen­spiel mit ver­schac­htelten Gültig­keits­bereichen zu ver­wirrenden Ergeb­nissen führen.

    E-Mails archivieren mit CommuniGate Pro

    E-Mails archivierenDie automa­tisierte Archi­vierung ein- und aus­gehender E-Mails ist für Unter­nehmen nicht nur (steuer-)rechtlich ver­pflichtend, sondern bringt auch posi­tive Effekte für Anwender und IT mit sich. CommuniGate Pro bietet einfache bord­eigene Mecha­nismen und kann externe Archiv­lösungen problem­los integrieren.*

    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.

    Dateiattribute anzeigen und bearbeiten mit PowerShell

    Dateiattribute im ExplorerUnter dem alten Kommando­interpreter cmd.exe kann man mit dem dir-Befehl und dem Dienst­programm attrib.exe die Attribute von Dateien recht unkompliziert ausgeben, filtern oder ändern. PowerShell hat dafür eigene Mecha­nismen, die aber etwas auf­wändiger sind und sich daher primär für Scripts eignen.

    IF, ELSE, SWITCH: Bedingte Anweisungen in PowerShell

    Powershell-LogoPraktisch jede proze­durale Programmier­sprache benötigt Konstrukte, die Anweisungen abhängig vom Zutreffen bestimmter Bedingungen auszu­führen. Dafür haben sich if/else und switch einge­bürgert, die auch PowerShell unter­stützt. Im Vergleich zu anderen Script-Sprachen zeigt sie jedoch einige syntak­tische Eigen­heiten.

    PowerShell-Funktionen mit Parametern aufrufen

    Parameter in einer PowerShell-Funktion definierenBeim Auf­ruf von Funk­tionen mit Para­metern unter­scheidet sich die PowerShell syntak­tisch von den meisten anderen Sprachen. Der ver­sehent­liche Ein­satz von Klam­mern und Kommata führt dann zu uner­wün­schten Ergeb­nissen. Diese kann man durch die Akti­vierung des Strict-Mode und benannte Para­meter ver­meiden.

    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.

    Große Dateien finden mit PowerShell

    Große Dateien finden mit PowerShellWenn der Speicher­platz auf einem Lauf­werk knapp wird, dann möchte man wahr­scheinlich wissen, ob einige dicke Brocken dafür verant­wortlich sind, auf die man even­tuell ver­zichten kann. Für diese Auf­gabe gibt es einige kosten­lose Tools, aber dank Power­Shell kann man sich ihre Instal­lation sparen.

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

    Powershell-LogoWie die meisten proze­duralen Programmier­sprachen verfügt PowerShell über eine ganze Palette von Schleifen­konstruk­tionen sowie ergän­zende Anwei­sungen zur Steuerung von Itera­tionen. Eine Besonder­heit besteht darin, dass neben foreach noch Foreach-Object existiert, um über Elemente eines Arrays zu iterieren.

    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.

    Seiten