Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Отчет о ПК на WSUS-сервер (http://forum.oszone.net/showthread.php?t=335586)

lox-ness 04-07-2018 08:32 2820527

Отчет о ПК на WSUS-сервер
 
Добрый День!
Существует иерархия серверов 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 2821421

Полагаю, что-то вроде:
Код:

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 2826353

Спасибо, за помощь
Да же не ожидала что ответят


Время: 23:08.

Время: 23:08.
© OSzone.net 2001-