У меня есть WSUS, установленный на поле Server 2012R2. Я пытаюсь использовать Получение-WsusComputer powershell команда для получения списка компьютеров с ожиданием или отказавшими обновлениями. Документация для команды, кажется, предлагает это -ComputerUpdateStatus
корректная опция для этого.
- ComputerUpdateStatus Указывает компьютерное состояние обновления, как представлено в интерфейсе Пользователя консоли WSUS. Допустимые значения для этого параметра:...
Проблема, которую я имею, состоит в том, что использование этой опции, кажется, не имеет значения. Когда я смотрю на консоль в GUI, приблизительно 75% моих систем находятся в состоянии OK, некоторые были в режиме офлайн некоторое время, у некоторых есть отказы, и остальные показывают пару 1-2 обновлений в необходимом столбце.
PS D:\> get-wsuscomputer -ComputerTargetGroups Workstations | Measure-Object
Count : 264
PS D:\> get-wsuscomputer -ComputerTargetGroups Workstations `
>> -ComputerUpdateStatus Failed | Measure-Object
Count : 264
PS D:\> get-wsuscomputer -ComputerTargetGroups Workstations `
>> -ComputerUpdateStatus FailedOrNeeded | Measure-Object
Count : 264
Эта опция просто повреждается? Или я пропускаю что-то очевидное о том, как использовать его?
Вот статья, описывающая все, что вас интересует.
Я опробовал часть кода из этой статьи, он работает довольно хорошо. Обратите внимание на опечатку по адресу:
$wsus.GetUpdateStatue($updatescope,$False)
, это должно быть:
$wsus.GetUpdateStatus($updatescope,$False)
Ошибка в модуле WSUS PowerShell. Я декомпилировал модуль, и команда GetWSUSComputer выглядит так, как будто кто-то установил для переменной все статусы по умолчанию, если она равна нулю, даже если для переменной не было значения, определенного до следующей строки. Конструкция модуля не раскрывает статус обновления компьютера в объекте, который предоставляет Get-WSUSComputer, поэтому вы также не можете фильтровать его постфактум.