PDA

Показать полную графическую версию : Отчет о ПК на WSUS-сервер


lox-ness
04-07-2018, 08:32
Добрый День!
Существует иерархия серверов WSUS, необходимо выгрузить данные с WSUS сервера и сравнить с AD.
Скрипт написали, все сравнивает хорошо, но когда получаем разницу AD и WSUS хотелось бы увидеть имя сервера на котором находиться клиент WSUS
и вот этот момент не получается прикрутить, может кто сталкивался? Часть кодаCls
$WSUSServer = Read-Host "Введите имя вышестоящего сервера WSUS"
$WSUSPort = Read-Host "Введите порт подключения к серверу"
$DC = (Get-ADDomain | Select DnsRoot).DnsRoot
$adpc = ((Get-ADComputer -Filter {(OperatingSystem -notlike "Windows* Server*") -and (Enabled -eq "True")}).DNSHostName -replace (".$dc"))
# Подключаемся к серверу WSUS
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$UseSSL = $false
$WServer = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($WSUSServer,$UseSSL,$WSUSPort)
# Создаем условие для поиска клиентов в базе данных WSUS
$WSearch = New-Object Microsoft.UpdateServices.Administration.ComputerTargetScope
$WSearch.IncludeDownstreamComputerTargets = $true
# Получаем список ПК без Серверных ОС
$wsuspc = (($WServer.GetComputerTargets($WSearch) | Where-Object {$_.OSDescription -notlike "Windows Server *"}).FullDomainName -replace (".$dc"))
# Сравниваем AD и Wsus
$deltaWsus = ($ADpc | Where { $WSUSpc -notcontains $_ })
# Сравниваем Wsus и AD
$NotAD = ($WsusPC | Where { $AdPC -notcontains $_ })
# Создаем книгу Excel и выгружаем туда полученные данные ..

Wheee111
11-07-2018, 02:39
Полагаю, что-то вроде:

Cls
$WSUSServer = Read-Host "Введите имя вышестоящего сервера WSUS"
$WSUSPort = Read-Host "Введите порт подключения к серверу"

$DC = Get-ADDomain | Select -ExpandProperty DnsRoot
$adpc = ((Get-ADComputer -Filter {(OperatingSystem -notlike "Windows* Server*") -and (Enabled -eq $True)}).DNSHostName -replace (".$dc"))

# Подключаемся к серверу WSUS
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$UseSSL = $false
$WServer = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($WSUSServer,$UseSSL,$WSUSPort)

# Создаем условие для поиска клиентов в базе данных WSUS
$WSearch = New-Object Microsoft.UpdateServices.Administration.ComputerTargetScope
$WSearch.IncludeDownstreamComputerTargets = $true

# Получаем список ПК без Серверных ОС
$wsuspc = ($WServer.GetComputerTargets($WSearch) | ?{$_.OSDescription -notlike "Windows Server *"} #).FullDomainName -replace (".$dc"))

# Сравниваем AD и Wsus
$DeltaWsus = $ADpc | ?{ $($WSUSpc.FullDomainName -replace (".$dc")) -notcontains $_ }

# Сравниваем Wsus и AD
$NotAD = $WsusPC | ?{ $AdPC -notcontains $($_.FullDomainName -replace (".$dc")) } | Select FullDomainName, @{N = 'ServerName'; E = {$_.UpdateServer.ServerName}}

lox-ness
14-08-2018, 11:20
Спасибо, за помощь
Да же не ожидала что ответят




© OSzone.net 2001-2012