Tags: Sicherheit, PowerShell, Windows Server 2008 R2, Troubleshooting
Es ist bei Microsoft üblich, zu neu eingeführten Windows-Server-Funktionen neben der Möglichkeit der Bedienung per GUI auch immer die entsprechenden PowerShell-Cmdlets zu liefern. Damit kann man etwa die entsprechenden Funktionen auch auf Server Core ausführen. Dies trifft auch auf den Best Practices Analyzer zu: Die dazugehörigen Cmdlets erlauben seine komplette Verwendung in einer PowerShell-Umgebung.
Best Practices Analyzer-Cmdlets einbinden
Um Best Practices Analyzer in PowerShell auszurufen, öffnet man auf dem Server eine PowerShell-Shell mit administrativen Rechten. Mittels der beiden Kommandos
Import-Module BestPractices
bindet man die Best Practices Analyzer-Cmdlets ein. Die verfügbaren Möglichkeiten, Rollen zu scannen, werden in den Cmdlets jeweils BestPracticesModelId, kurz ID, genannt. Welche davon bereitgestellt sind, hängt von der Rollenkonfiguration des Servers ab und kann mittels des Kommandos
Get-BPAModelabgefragt werden.
Rollen scannen und Ergebnisse ausgeben
Die ausgegebenen IDs kann man nun mit dem Befehl
einer Best-Practice-Analyse unterziehen, etwa
Invoke-BpaModel Microsoft/Windows/DirectoryServicesfür die Active-Directory-Dienste. Man kann die IDs dem Befehl Invoke-BPAModel auch per Pipe übergeben, das ist etwa nützlich, um mehrere Rollen in einem Durchlauf zu scannen. Alle Rollen auf einmal etwa scannt der Befehl
Get-BPAModel |Invoke-BpaModelNach Abschluss eines oder mehrerer Scans gibt das Cmdlet jeweils eine kurze Meldung darüber aus.
Ergebnisse anzeigen oder speichern
Die Ergebnisse eines Scans sieht man mittels des Befehls
Welcher Kategorie ein Ergebnis entspricht und ob es sich um einen Fehler, eine Warnung oder eine Kompatibilitätsbestätigung handelt, sieht man anhand der Textausgabe. Eine gewisse Gliederung wird durch die Reihenfolge in die Ausgabe gebracht – zuerst erscheinen die Fehler, dann die Warnungen, zuletzt die Best Practices, zu denen man bereits kompatibel ist. Auch hier kann man nach obigen Muster die IDs per Pipe an Get-BPAResult schicken, etwa um die Ausgabe gleich mehrerer Rollen-Scans zusammenzufassen.
Für eine übersichtlichere Ausgabe kann man den Ergebnistext durch einen HTML-Filter schicken, der ihn formatiert. Zu den Best Practices Analyzer-Modulen gehört ein dazu passendes Stylesheet unter %windir%\system32\WindowsPowerShell\v1.0\Modules\BestPractices\BestPracticesReportFormat.css. Der Befehl für eine HTML-Ausgabe in Listenform etwa lautet
Get-BPAResult ‹ID› |ConvertTo-Html -As List –CssUri windir\system32\WindowsPowerShell\v1.0\Modules\BestPractices\BestPracticesReportFormat.css >report.htmlVerwendet man statt List das Schlüsselwort Table, wird stett dessen eine Tabelle erstellt.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Windows Server 2008 R2 Best Practices Analyzer
- Welche lokalen Gruppenrichtlinien sind auf dem Rechner aktiviert?
- Security- und Health-Checks für Active Directory mit PowerShell-Scripts
- Resolve-DnsName: nslookup für PowerShell
- Windows-Sicherheit öffnet sich nicht: Store-App mit PowerShell zurücksetzen
Weitere Links