¿Cómo puedo comparar las revisiones instaladas entre dos servidores de Windows con PowerShell?

9

Necesito comparar los parches instalados entre un entorno de desarrollo y producción usando PowerShell. ¿Cómo puedo hacer esto?

MDMarra
fuente

Respuestas:

11

Recientemente escribí en un blog sobre este problema y se me ocurrió este script. Puede ejecutarlo como un usuario que es administrador en ambas máquinas, o usar la -Credentialopción en los 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
MDMarra
fuente
1
Nunca supe sobre get-hotfix. Gran pepita de información allí.
Mike
Tenga cuidado al usar Get-Hotfix, solo informa un subconjunto de parches. Consulte este artículo de Hey Scripting Guy para obtener más información. @ 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
Jijo Chacko
fuente
1
¿Puede explicar cómo consultar WMI podría ser mejor que ejecutar powershell nativo en cada host?
blaughw