Как запустить анализатор лучших практик с помощью PowerShell
В этом учебнике вы научитесь запускать и просматривать результаты анализа лучших практик с помощью PowerShell. Кроме того, я покажу вам, как вывести результаты в таблицу, которую можно искать.
Что такое анализатор наилучших практик?
Анализатор лучших практик — это инструмент Microsoft, который впервые стал доступен в Windows Server 2008 R2. Этот инструмент выполняет сканирование ролей на вашем сервере и сообщает обо всех нарушениях лучших практик. Эти лучшие практики определены экспертами Microsoft; например, рекомендуется регулярно создавать резервные копии Active Directory. Анализатор лучших практик может сканировать Active Directory и сообщать, если ваша Active Directory не была недавно сохранена.
Инструмент анализа лучших практик (BPA) можно запустить как из интерфейса, так и с помощью PowerShell. Я считаю, что графический интерфейс работает очень медленно, и поэтому предпочитаю запускать его с помощью PowerShell.
Преимущества анализа лучших практик
- Найдите нарушения наилучших практик на ваших серверах
- Увеличьте безопасность
- Найдите проблемы с производительностью и надежностью
- Найдите проблемы с конфигурацией
Команды PowerShell для анализа лучших практик
Существует три разных командлета PowerShell, которые будут использоваться для выполнения и просмотра результатов BPA.
Получить-BPAмодель
Этот командлет получает и отображает список тестов BPA, которые можно выполнить на системе. Этот командлет также отобразит последнее время, когда сканирование было выполнено.
Вызов-BPAмодели
Этот командлет начнет сканирование BPA для конкретного теста (роли).
Получить-РезультатBPA
Отображает результаты недавнего сканирования BPA.
Теперь я пройдусь по некоторым примерам.
Шаг 1: Перечислите доступные тесты анализатора лучших практик (модели)
Первый шаг - перечислить, какие тесты анализатора лучших практик доступны на вашем сервере. Это можно сделать с помощью следующей команды.
get-bpamodel | select ID, Name, lastscantimeКак вы можете видеть, этот cmdlet перечислит доступные тесты BPA (Microsoft называет их моделями) и время последнего сканирования. Список тестов определяется теми ролями, которые вы установили на своем сервере.
Шаг 2: Запустите сканирование BPA
Далее, вы берёте Идентификатор из шага 1 и используете команду Invoke-BPAModel для запуска сканирования. Я собираюсь запустить сканирование на DirectoryServices, которое является Active Directory. Это делается с помощью команды Invoke-BPAModel + Идентификатор. Идентификатор для Active Directory — "Microsoft/Windows/DirectoryServices", поэтому полная команда выглядит следующим образом:
Invoke-BPAModel “Microsoft/Windows/DirectoryServices”
Если бы я хотел провести сканирование BPA на DNS, команда была бы:
Invoke-BPAModel “Microsoft/Windows/DNSServer”Вот скриншот сканирования DirectoryServices. Это не отображает результаты, а только показывает статус сканирования.
Шаг 3: Просмотр результатов сканирования BPA
На этом этапе я только что выполнил сканирование BPA в Active Directory и DNS. Теперь пришло время просмотреть результаты этих сканирований. Это делается с помощью команды Get-BpaResult и идентификатора теста.
Get-BpaResult “Microsoft/Windows/DirectoryServices”Ниже представлен вывод команды.
Как вы видите, это не в удобочитаемом формате, и он может выводить много данных. Существует несколько способов привести это в порядок и сделать его более удобочитаемым.
Прежде всего, необходимо отфильтровать некоторые поля, которые вам не нужны. Есть несколько полей, которые мне не нужны, такие как ResultNumber, Excluded, RuleID, SubModelID и так далее. Так что вы можете использовать команду format-table, а затем перечислить поля, которые хотите отобразить.
В приведенном ниже примере я просто хочу отобразить Серьезность, Категорию, Проблему и Влияние.
Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | format-table Severity,Category,Problem,ImpactНиже приведены результаты команды.
Это выглядит лучше, но есть несколько пустых строк. Поскольку я просто хочу найти любые проблемы, я могу удалить информацию о результатах из отображения.
Это можно сделать, отображая результаты, где серьезность не равна «Информация».
Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | where severity -ne Information | format-table Severity,Category,Problem,ImpactВот результаты команды.
Теперь у меня есть гораздо более чистый отчет, который отображает только те детали, которые мне нужны.
Отобразить результаты сканирования BPA в сетке
Более простым вариантом просмотра сканирования BPA является вывод его в сетку. Это делается с помощью передачи результатов в OGV. OGV является аббревиатурой для Out-GridView.
Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | OGVВот как выглядит выход.
Гораздо легче читать, верно?
Вы также можете отфильтровать результаты, введя значение в фильтр. Например, если я введу 'предупреждение', результаты будут отфильтрованы так, чтобы отображались только те, которые содержат 'предупреждение'. Вы также можете изменить порядок столбцов.
Экспортировать BPA-скан в файл (CSV или HTM)
Если вы хотите сохранить результаты сканирования в файл, используйте один из этих вариантов.
- Экспорт-CSV
- преобразовать в HTML
Вот пример экспорта в файл CSV.
Get-BpaResult -ModelId Microsoft/Windows/DirectoryServices | export-csv c:\it\scan.csvВот снимок экрана с результатами.
Вот пример экспорта результатов сканирования в файл html
Get-BPAResult Microsoft/Windows/DirectoryServices | convertTo-Html | Set-Content C:\BPAResults\DirectoryServices.htmРезюме
Анализатор лучших практик — это отличный инструмент, встроенный в серверы Microsoft. Не думаю, что многие о нем знают или используют. Я рекомендую время от времени запускать его, чтобы узнать, есть ли у ваших серверов какие-либо серьезные проблемы или некорректные настройки в соответствии с лучшими практиками Microsoft. Хотя вы можете запускать сканирование из графического интерфейса, я считаю, что сканирования через PowerShell быстрее и проще в использовании.
Источники :
- Запустите сканирование анализатора лучших практик и управляйте результатами сканирования.
- Преобразовать в HTML
- Export-Csv







