temos 3 Servidores de Réplica do WSUS e um servidor central ao qual as réplicas estão conectadas. Do servidor central, estamos gerenciando as 3 réplicas. Todos os clientes estão conectados apenas às réplicas.
Eu estou tentando criar um script do PowerShell, que deve aprovar somente as atualizações exigidas por qualquer servidor.
Meu problema é: se estou consultando as informações sobre a contagem "necessária" no servidor central, sempre obtenho zero patches. Isso ocorre porque nenhum cliente está conectado ao servidor central.
Como obtenho esta informação para a soma de todos os quatro (ou na prática três) servidores?
O que eu tenho atualmente é:
# Get WSUS Server
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;
$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope;
#Get all available Updates
$wsusupdates = $wsus.GetUpdates($updateScope)
$updateTotalCount = $wsus.GetUpdateCount($updateScope)
foreach($update in $wsusupdates)
{
# Get the summary
$summary = $update.GetSummary($computerscope);
$neededCount = ($summary.InstalledPendingRebootCount + $summary.NotInstalledCount)
# Only install, if any server needs the update
if ($neededCount -gt 0)
{
$update.Approve("Install", ($wsus.GetComputerTargetGroups() | Where-Object{$_.Name -eq $aSelectedWsusGroup}))
}
}
A parte principal é a linha
$summary = $update.GetSummary($computerscope);
onde recebo as informações das atualizações - incl. as contagens que preciso para o cálculo "é necessário" na linha seguinte.
Finalmente, a questão é:
Como incluir os dados do servidor de réplica no resumo de atualização para descobrir se uma atualização é necessária?
BTW:
Tentei executar o script remotamente nas réplicas do servidor central do WSUS, mas o comando approve não é permitido em servidores de réplica.