Como posso comparar os hotfixes instalados entre dois servidores Windows usando o PowerShell?


9

Preciso comparar os patches instalados entre um ambiente de desenvolvimento e produção usando o PowerShell. Como posso fazer isso?

Respostas:


11

Eu escrevi recentemente sobre esse problema e criei esse script. Você pode executá-lo como um usuário administrador nas duas máquinas ou usar a -Credentialopção nos get-hotfixcomandos.

$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

1
Nunca soube sobre o hotfix. Grande pepita de informação lá.
13133 Mike

Tenha cuidado ao usar o Get-Hotfix, pois ele relata apenas um subconjunto de patches. Veja este artigo do Hey Scripting Guy para obter mais informações. @Mike
Ashley

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
Você pode explicar como a consulta WMI poderia ser melhor do que executar o PowerShell nativo em cada host?
blaughw
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.