Jak mogę porównać zainstalowane poprawki między dwoma serwerami Windows za pomocą PowerShell?

9

Muszę porównać zainstalowane poprawki między środowiskiem programistycznym i produkcyjnym za pomocą programu PowerShell. W jaki sposób mogę to zrobić?

MDMarra
źródło

Odpowiedzi:

11

Niedawno napisałem na blogu o tym problemie i wymyśliłem ten skrypt. Możesz uruchomić go jako administrator na obu komputerach lub użyć -Credentialopcji w get-hotfixpoleceniach.

$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
źródło
1
Nigdy nie wiedziałem o get-hotfix. Świetny samorodek informacji.
Mike
Zachowaj ostrożność podczas korzystania z poprawki Get, ponieważ zgłasza ona tylko podzbiór poprawek. Więcej informacji można znaleźć w tym artykule Hej Skrypciarz . @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
źródło
1
Czy możesz wyjaśnić, w jaki sposób sprawdzanie WMI może być lepsze niż uruchamianie natywnego programu PowerShell na każdym hoście?
blaughw