Wie kann ich installierte Hotfixes zwischen zwei Windows-Servern mit PowerShell vergleichen?

9

Ich muss die installierten Patches zwischen einem Entwickler und einer Produktionsumgebung mit PowerShell vergleichen. Wie kann ich das machen?

MDMarra
quelle

Antworten:

11

Ich habe kürzlich über dieses Problem gebloggt und mir dieses Skript ausgedacht. Sie können es entweder als Benutzer ausführen, der auf beiden Computern Administrator ist, oder die -CredentialOption für die get-hotfixBefehle verwenden.

$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
quelle
1
Ich wusste nie über get-hotfix Bescheid. Tolles Nugget an Informationen.
Mike
Seien Sie vorsichtig, wenn Sie Get-Hotfix verwenden, da nur eine Teilmenge von Patches gemeldet wird. Weitere Informationen finden Sie in diesem Artikel zu Hey Scripting Guy . @ 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
quelle
1
Können Sie erklären, wie das Abfragen von WMI besser sein kann, als native Powershell für jeden Host auszuführen?
Blaughw