Я пытаюсь найти способ создания отчета WSUS об обновлениях, которые были утверждены для группы компьютеров A, которые не были утверждены для одной или нескольких других групп. Кроме того, табличный отчет, в котором перечислены статус утверждения для каждого обновления и каждой группы, так что он может быть обработан, чтобы извлечь то, что мне нужно. Похоже, в самом WSUS такого отчета нет, или, по крайней мере, я не могу его найти, поэтому сценарий для создания такого отчета был бы весьма желательным.
9
Ответы:
Этот скрипт powershell делает именно то, что было в вашем первоначальном запросе. Изучите одну группу компьютеров и найдите обновления, не утвержденные для одной или нескольких других групп компьютеров.
Примечание. Вам нужно будет выполнить это либо на сервере WSUS, либо на компьютере, на котором установлены средства администрирования WSUS.
конфигурация
Задайте
$targetComputerGroup
для группы компьютеров, которую вы хотите использовать в качестве базовой линии. Укажите$CheckForMissing
имена групп или групп, для которых вы хотите узнать, были ли они утверждены. Примечание: чтобы сделать кратные просто кома отдельно ("Group1, Group2")После завершения у вас будет вывод как:
Если вместо вывода на экран вы хотите экспортировать список в CSV, замените нижнюю часть следующим кодом:
источник
Можно «просто» подключиться к базе данных WSUS и выполнить запросы к ней:
\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query
использованию Windows Authentication .Эти таблицы, кажется, представляют интерес для вашего вопроса:
tbUpdate
Содержит информацию об отдельных обновлениях
tbTargetGroup
Содержит информацию обо всех группах компьютеров
tbDeployment
Содержит информацию о том, какие обновления были одобрены для каких групп компьютеров.
Однако представляется целесообразным использовать уже существующее представление
vUpdateApproval
для получения большей части информации, которую вы ищете, поскольку это представление уже переводитActionID
столбец изtbDeployment
других вещей.Представление
vUpdateApproval
, однако, не включает легко читаемые заголовки для обновлений. Названия обычно читаются изtbLocalizedProperty
. Для того, чтобы сделать его проще для нас, есть еще один вид:vUpdate
.На самом деле у меня нет нужных данных в нашей базе данных WSUS для построения правильного запроса, который бы соответствовал вашему первому запросу (и я не достаточно уверен, чтобы создавать его вслепую). Итак, вот подход для вашего вторичного запроса. Если я не испортил, он выдает список всех обновлений и состояние утверждения для всех групп.
Который производит этот вывод на нашем немецком SBS:
Для нашего SBS с его 5 группами по умолчанию это дает 121558 строк результата за ~ 26 с. Поэтому, если вы хотите поэкспериментировать с запросом, рекомендуется изменить первую строку на
SELECT TOP 1000
время тестирования.Я также нашел время, чтобы обернуть все это в сценарий PowerShell:
Обратите внимание, что в этот скрипт включено
SELECT TOP 10
ограничение, позволяющее избежать затопления вашей оболочки во время тестирования.источник
myscript.ps1 | fl
получить другой (не усеченный) вывод.