Как сравнить установленные исправления между двумя серверами Windows с помощью PowerShell?

9

Мне нужно сравнить установленные исправления между разработчиком и производственной средой, используя PowerShell. Как я могу это сделать?

MDMarra
источник

Ответы:

11

Я недавно написал в блоге об этой проблеме и придумал этот сценарий. Вы можете запустить его как пользователь с правами администратора на обеих машинах или использовать -Credentialопцию в get-hotfixкомандах.

$server1 = Read-Host "Server 1"
$server2 = Read-Host "Server 2"

$server1Patches = get-hotfix -computer $server1 | Where-Object {$_.HotFixID -ne "File 1"}

$server2Patches = get-hotfix -computer $server2 | Where-Object {$_.HotFixID -ne "File 1"}

Compare-Object ($server1Patches) ($server2Patches) -Property HotFixID
MDMarra
источник
1
Никогда не знал о get-hotfix. Отличный самородок информации там.
Майк
Будьте осторожны при использовании Get-Hotfix, он сообщает только о подмножестве патчей. Смотрите эту статью Hey Scripting Guy для получения дополнительной информации. @Mike
Эшли
0
clear-host
$machine1=Read-Host "Enter Machine Name 1:-"
$machine2=Read-Host "Enter Machine Name 2:-"
$machinesone=@(Get-wmiobject -computername  $machine1 -Credential Domain\Adminaccount -query 'select hotfixid from Win32_quickfixengineering')
$machinestwo=@(Get-WmiObject -computername $machine2  -Credential Domain\Adminaccount -query 'select hotfixid from Win32_quickfixengineering')
Compare-Object -RefernceObject $machinesone -DiffernceObject $machinestwo -Property hotfixid
Джиджо Чакко
источник
1
Можете ли вы объяснить, как лучше использовать запросы WMI, чем запускать собственные PowerShell для каждого хоста?
Blaughw