Утверждение обновлений WSUS на репликах WSUS с помощью Powershell

у нас есть 3 сервера реплик WSUS и один центральный сервер, к которому реплики подключены. С центрального сервера мы управляем 3 репликами. Все клиенты подключены только к репликам.

Я пытаюсь создать сценарий PowerShell, который должен утверждать только обновления, которые требуются любому серверу.

Моя проблема: если я запрашиваю информацию о " нужно "посчитать на центральном сервере, я всегда получаю ноль патчей. Это потому, что к центральному серверу не подключены клиенты. Как мне получить эту информацию для суммы всех четырех (или на практике трех) серверов?

В настоящее время у меня есть:

# 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}))
    }
}

Ключевой частью является строка

$summary = $update.GetSummary($computerscope); 

, где я получаю информацию об обновлениях - вкл. количество, которое мне нужно для вычисления «необходимо» в строке после.

Наконец, вопрос: Как включить данные сервера реплик в сводку обновлений, чтобы выяснить, требуется ли обновление?

Кстати: Я попытался запустить сценарий удаленно на репликах с центрального сервера WSUS, но команда одобрения не разрешена на серверах реплик.

2
задан 20 December 2016 в 14:55
1 ответ

Добавьте $computerScope.IncludeDownstreamComputerTargets = $true

$computerScope = new-object Microsoft.UpdateServices.Administration.ComputerTargetScope;
$computerScope.IncludeDownstreamComputerTargets = $true 

Assuming: Сервер реплики

  • включил roll-up,
  • прошло достаточно времени для того, чтобы оба клиента отчитались перед своим сервером, и roll-up с нисходящего сервера (DSS) на восходящий сервер (USS). К этому моменту вы должны увидеть необходимые обновления в UI.
0
ответ дан 3 December 2019 в 14:17

Теги

Похожие вопросы