powershell verifica a atualização do Windows em um servidor

1

Temos mais de 1000 servidores, estamos fazendo uma atividade de atualização mensal. Eu preciso verificar os patches são atualizados nos servidores ou não, é possível verificar com base nos números do Boletim de Segurança da Microsoft (por exemplo, MS14-40.) por powershell.

Atenciosamente, Karthick V

    
por karthick 15.09.2014 / 12:15

3 respostas

4

Com mais de 1000 servidores, presumo que você tenha uma instância do WSUS em seu ambiente? Você pode obter muitas informações com o powershell. Este é um trecho que eu uso em nosso servidor WSUS (ou via ps remoto):

$wsus = Get-WsusServer
$servers = @("server1","server17","pol-server3","pol-server4")

$servers | % {
   $servername = $_
   $server = $wsus.GetComputerTargets() | ? { $_.FullDomainName -imatch $servername }
   If ($server) {
      New-Object PSObject -Property @{
         Server = $servername
         Installed = $server.GetUpdateInstallationSummary().InstalledCount
         NotInstalled = $server.GetUpdateInstallationSummary().NotInstalledCount
      }
   }
} | ft -auto

Resultados:

Server        Installed NotInstalled
------        --------- ------------
server1             144           21
server17            144           21
pol-server3         149           21
pol-server4         100           37

Isso verifica se as correções estão instaladas ou ainda são necessárias, mas não avisará quais quais patches ainda são necessários para cada servidor. Espero que isso ajude.

    
por 20.11.2014 / 05:25
1

O WMI costumava consultá-los via classe QuickfixEngineering, mas tenho a sensação de que isso não funciona tão bem no Vista ou mais tarde:

Get-WMIObject -Class "Win32_QuickFixEngineering" -Computer <computername>

Por isso, eu provavelmente sugiro usar o WSUS, supondo que você tenha centralizado o gerenciamento de patches por meio disso. Você pode adicionar a coluna do Número MSRC à visualização "Todas as Atualizações" e o relatório informará quais sistemas ela instalou. Como este é apenas um banco de dados SQL, você pode construir algumas chamadas através do Powershell para extrair esses dados, mas isso é um pouco além de mim no momento.

    
por 15.09.2014 / 12:58
1
get-hotfix | WHERE {$_.hotfixID -eq 'KB******'}

Você receberá a atualização com o tempo instalado, etc.

    
por 15.09.2014 / 13:05