Usando o get-wsuscomputer com -ComputerUpdateStatus

4

Eu tenho o WSUS instalado em uma caixa do Server 2012R2. Estou tentando usar o comando powershell Get-WsusComputer para obter uma lista de computadores com atualizações pendentes ou com falha. A documentação do comando parece sugerir que -ComputerUpdateStatus é a opção correta para isso.

-ComputerUpdateStatus Specifies the computer update state as represented in the WSUS Console user interface. The acceptable values for this parameter are: ...

O problema que estou tendo é que usar essa opção não parece fazer nenhuma diferença. Quando olho para o console na GUI, cerca de 75% dos meus sistemas estão no estado OK, alguns estão off-line há algum tempo, alguns têm falhas e o restante mostra duas ou duas atualizações na coluna necessária.

PS D:\> get-wsuscomputer -ComputerTargetGroups Workstations | Measure-Object

Count    : 264

PS D:\> get-wsuscomputer -ComputerTargetGroups Workstations '
>>                  -ComputerUpdateStatus Failed  | Measure-Object

Count    : 264

PS D:\> get-wsuscomputer -ComputerTargetGroups Workstations '
>>                  -ComputerUpdateStatus FailedOrNeeded | Measure-Object

Count    : 264

Esta opção está simplesmente quebrada? Ou estou sentindo falta de algo óbvio sobre como usá-lo?

    
por Zoredache 29.10.2015 / 19:20

2 respostas

2

Existe um erro no módulo WSUS PowerShell. Eu decompilei o Module e o comando GetWSUSComputer parece que alguém padronizou uma variável para todos os status se null, mesmo que a variável não tivesse um valor definido até a próxima linha. O design do módulo não expõe o status de Atualização do computador no objeto que o Get-WSUSComputer expõe, portanto você não pode filtrá-lo após o fato.

    
por 08.12.2016 / 17:07
1

Aqui está o artigo descrevendo tudo o que você está interessado.

link

Eu experimentei alguns dos códigos deste artigo, ele funciona muito bem. Por favor, note que há um erro de digitação em:

$wsus.GetUpdateStatue($updatescope,$False)

deve ser:

$wsus.GetUpdateStatus($updatescope,$False)
    
por 25.08.2016 / 15:16