Comment comparer les correctifs installés entre deux serveurs Windows à l'aide de PowerShell?

9

J'ai besoin de comparer les correctifs installés entre un environnement de développement et de production à l'aide de PowerShell. Comment puis-je faire ceci?

MDMarra
la source

Réponses:

11

J'ai récemment blogué sur ce problème et j'ai proposé ce script. Vous pouvez soit l'exécuter en tant qu'utilisateur administrateur sur les deux machines, soit utiliser l' -Credentialoption sur les get-hotfixcommandes.

$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
la source
1
Je n'ai jamais connu get-hotfix. Grande pépite d'informations là-bas.
Mike
Soyez prudent lorsque vous utilisez Get-Hotfix, il ne signale qu'un sous-ensemble de correctifs. Voir cet article de Hey Scripting Guy pour plus d'informations. @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
la source
1
Pouvez-vous expliquer en quoi la requête WMI pourrait être meilleure que l'exécution de PowerShell natif sur chaque hôte?
blaughw