Войти

Показать полную графическую версию : Помогите сформировать сводный отчёт WSUS


Luka666
03-07-2019, 10:14
Привет камрады. Тут такое дело, что не хватает у меня моего чайника чтоб создать скрипт для формирования сводного отчёта о состоянии компьютеров. У нас WSUS 3.0 SP1 стоит на 2008 серве, нужно каждую неделю отправлять этот отчёт "наверх", и хотелось бы автоматизировать этот процесс, очень!
Как состряпать чтоб при запуске скрипта, формировался сводный отчёт о состоянии компьютеров в .pdf файле???
Может кто сталкивался и подскажет что, делать, поподробнее пожалуйста!

Ageron
03-07-2019, 10:18
формировался сводный отчёт о состоянии компьютеров »
а сейчас в каком формате он создается?

Luka666
03-07-2019, 10:26
Ageron, Сейчас он вручную создаётся в любом, в каком задашь. Я Хочу чтоб скрипт сам заставлял wsus формировать этот сводный отчёт. Я потом допилю его чтоб сохранял в положенном месте и пересылал куда надо, но сейчас мне нужно чтоб отчёт был автоматом собран. Как-то так.

Ageron
03-07-2019, 11:52
смотрите в сторону Microsoft.UpdateServices.Administration
готового решения не скажу, но ваша задача выполнима


простой код, для простой таблицы, запускать под админом wsus


[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")

$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer('wsus3.moscow.eld.local', $False, 8530)

$computerscope = New-Object Microsoft.UpdateServices.Administration.ComputerTargetScope
$updatescope = New-Object Microsoft.UpdateServices.Administration.UpdateScope

$wsus.GetSummariesPerComputerTarget($updatescope,$computerscope) | Select @{L='ComputerTarget';E={($wsus.GetComputerTarget([guid]$_.ComputerTargetId)).FullDomainName}}, @{L='NeededCount';E={($_.DownloadedCount + $_.NotInstalledCount)}}, DownloadedCount, NotInstalledCount, InstalledCount, FailedCount | ConvertTo-Html -Fragment

$groups = @{}
$wsus.GetComputerTargetGroups() | ForEach {$groups[$_.Name]=$_.id;$groups[$_.ID]=$_.name}
$pcgroup = @($wsus.GetComputerTargets($computerscope) | Where {$_.ComputerTargetGroupIds -eq $groups['WorkOffice12']}) | Select -expand Id

$wsus.GetSummariesPerComputerTarget($updatescope,$computerscope) | Where {$pcgroup -Contains $_.ComputerTargetID} | Format-Table @{L='ComputerTarget';E={($wsus.GetComputerTarget([guid]$_.ComputerTargetId)).FullDomainName}}, @{L='NeededCount';E={($_.DownloadedCount + $_.NotInstalledCount)}}, DownloadedCount, NotInstalledCount, InstalledCount, FailedCount

Luka666
31-07-2019, 10:24
Хорошо, спасибо. Попробую что нить состряпать как руки дойдут, отпишусь если получится!




© OSzone.net 2001-2012