Scripts
Sonderzeichen (Quote, Dollar) in PowerShell maskieren (escape)
PowerShell kennt wie praktisch jede Programmiersprache reservierte Zeichen, die beispielsweise Variablen markieren oder als Operatoren dienen. Möchte man sie in Zeichenketten verwenden, dann muss man sie je nach Kontext maskieren. Kompliziert wird es, wenn zusätzlich RegEx oder AD-Abfragen ins Spiel kommen.
Group-Object: Daten nach Eigenschaften gruppieren mit PowerShell
SQL kann bekanntlich mit dem Befehl GROUP BY das Ergebnis einer Abfrage nach den Werten in einer oder mehreren Spalten gruppieren. Aber auch PowerShell ist dazu in der Lage, wenn man an Group-Object tabellarische Daten übergibt, wie sie von vielen Cmdlets erzeugt werden.
Alternative zu WSUS: Updates verteilen mit Aagon ACMP CAWUM
Die Aagon GmbH erweiterte ihre Client-Management-Lösung um eine Verwaltung für Microsoft-Updates, mit der sie die Windows Server Update Services komplett ersetzt. Interessant ist das Tool nicht nur für bestehende ACMP-Anwender, sondern für alle, die eine Alternative zu den unzulänglichen WSUS suchen.*
Shadow Groups im Active Directory verwalten mit PowerShell
Shadows Groups im Active Directory stehen für ein Konzept, bei dem man für OUs gleichnamige Sicherheitsgruppen anlegt, welche die gleichen User enthalten wie die entsprechende OU. PowerShell kann die zusammengehörigen OUs und Gruppen synchron halten, indem man damit User aus der Gruppe entfernt oder ihr hinzufügt.
Fehlerbehandlung in PowerShell: ErrorAction, try, catch, finally
Entwickler sollten sicherstellen, dass Scripts beim Auftreten von Fehlern nicht abrupt abbrechen, sondern kontrolliert enden. Benutzerfreundlicher Code verschont zudem User vor technischen Fehlermeldungen. PowerShell bietet die Mittel für ein differenziertes Error-Handling.
Zahlen, Datums- und Zeitangaben sowie Währungen formatieren mit Formatoperator -f in PowerShell
Wenn ein Kommando eine Kombination aus Zeichenketten, nummerischen Werten und Variablen ausgeben soll, dann kann sie der Formatoperator "-f" diese fast beliebig anpassen. Besonders flexibel zeigt er sich bei Datumsangaben oder Zahlen. Gleichzeitig erhöht er die Lesbarkeit des Codes.
Verknüpfte GPOs und OUs finden mit PowerShell
Bei einer großen Zahl an OUs und GPOs ist nicht leicht zu überblicken, welche GPOs mit welchen OUs verknüpft sind. In PowerShell lässt sich das mit relativ geringem Aufwand herausfinden. Dabei kann man wahlweise die OUs nach verlinkten GPOs oder GPOs nach OUs filtern, mit denen sie verbunden sind.
RegEx in PowerShell: Treffer in Variablen speichern mit Named Groups
PowerShell erlaubt den Einsatz von regulären Ausdrücken in verschiedenen Kontexten, unter anderem mit den Operatoren match und replace. Bei langen Ausdrücken kann es hilfreich sein, den Inhalt von Gruppen in Variablen mit einem sprechenden Namen zu speichern.
ConvertTo-Html: HTML-Reports erstellen in PowerShell
Mit seinen zahlreichen Cmdlets erlaubt PowerShell den Abruf von fast beliebigen Systeminformationen. Wenn ein Kommando größere Datenmengen zurückgibt, dann ist die Ausgabe auf dem Bildschirm aber meist sehr unübersichtlich. In diesem Fall kann man die Resultate für die Ansicht im Browser aufbereiten.
Desired State Configuration: Zielsysteme festlegen mit ConfigurationData
Eine configuration beschreibt, welche Einstellungen ggf. geändert oder welche Features und Anwendungen de/installiert werden sollen. Dabei kann man auch gleich die betroffenen Rechner angeben. Wenn man aber das "Was" vom "Wo" trennen möchte, dann bietet sich die Verwendung von ConfigurationData an.
Hashtable in PowerShell erzeugen, Elemente hinzufügen, löschen, sortieren
Neben Arrays unterstützt PowerShell mit Hash-Tabellen einen weiteren zusammengesetzten Datentyp. Er bietet Methoden, um Schlüssel/Wert-Paare nachzuschlagen, hinzuzufügen, zu ändern oder zu löschen. Hashtables lassen sich vielfältig anwenden, etwa zur Übergabe von Werten an Cmdlet-Parameter.