Best Practices Analyzer per PowerShell ausführen

    Best Practice Analyzer per PowerShell bedienenEs 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

    Die BPA-Cmdlets müssen zunächst eingebunden werdenUm Best Practices Analyzer in PowerShell auszurufen, öffnet man auf dem Server eine PowerShell-Shell mit administrativen Rechten. Mittels der beiden Kommandos

    Import-Module ServerManager
    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-BPAModel

    abgefragt werden.

    Rollen scannen und Ergebnisse ausgeben

    Best-Practice-Scan der Active-Directory-Dienste mittels PowerShellDie ausgegebenen IDs kann man nun mit dem Befehl

    Invoke-BpaModel ‹ID›

    einer Best-Practice-Analyse unterziehen, etwa

    Invoke-BpaModel Microsoft/Windows/DirectoryServices

    fü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-BpaModel

    Nach Abschluss eines oder mehrerer Scans gibt das Cmdlet jeweils eine kurze Meldung darüber aus.

    Ergebnisse anzeigen oder speichern

    Nach dem Scan an sich kann man dessen Ergebnis ausgebenDie Ergebnisse eines Scans sieht man mittels des Befehls

    Get-BPAResult ‹ID›

    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.html

    Verwendet man statt List das Schlüsselwort Table, wird stett dessen eine Tabelle erstellt.

    Keine Kommentare