Сравнить установленные обновления Windows с определенным массивом - PullRequest
0 голосов
/ 26 февраля 2019

Я хотел бы проверить, установлены ли выбранные обновления на определенном компьютере.

Пока это моя попытка:

$HotfixInstaled = Get-Hotfix | Select-Object -Property HotFixID | out-string
$HotfixRequared = @("KB4477029", "KB4486458", "KB4480959")


Compare-Object $HotfixRequared $HotfixInstaled -Property HotFixID | where {$_.sideindicator -eq "<="}

Основная проблема в том, что Compare-Object можетне может найти элементы, которые находятся в $HotfixRequared и в обеих переменных одновременно.

1 Ответ

0 голосов
/ 26 февраля 2019

Здесь две проблемы:

  1. Out-String затрудняет сравнение объектов, поскольку вы уничтожаете структуру массива возвращаемого объекта и создаете массив строк, каждая буква которого является собственным полем.,Не делайте этого.
  2. Вы должны использовать -IncludeEqual Switch Compare-Object и изменить свой запрос Where-Object таким же образом.

Это должно дать вамвсе исправления, которые есть в $HotfixRequarded и в обоих:

$HotfixInstaled = Get-Hotfix | Select-Object -Property HotFixID
$HotfixRequared = @("KB4477029", "KB4486458", "KB4480959")


Compare-Object $HotfixRequared ($HotfixInstaled.HotFixID) -IncludeEqual| Where-Object {$_.sideindicator -eq "<=" -or $_.sideindicator -eq "=="}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...