Сканирование AD для Windows Server с включенным прокси - PullRequest
0 голосов
/ 06 сентября 2018

Я хочу сканировать компьютеры AD и получить информацию о том, на каком из них установлен Windows Server и указан прокси-адрес.

Как объединить эти команды:

Get-ADComputer -Filter 'OperatingSystem -like "Windows Server*"' -Properties IPv4Address,OperatingSystem,proxyaddresses | FT Name,DNSHostName,IPv4Address,OperatingSystem,proxyaddresses -A

и

Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object *Proxy*

чтобы получить такой список:

Name------DNSHostName----------IPv4Address------OperatingSystem---------proxyaddresses  
Server --- Server.domain.com-----192.168.1.1-------Windows Server 2008 ----192.168.1.100   
Server1--- Server1.domain.com-----192.168.1.2-------Windows Server 2008 ----192.168.1.100   
Server2 --- Server2.domain.com-----192.168.1.3-------Windows Server 2008 ----none

1 Ответ

0 голосов
/ 06 сентября 2018

Это было бы возможным решением:

$outputList = @()
Get-ADComputer -Filter {OperatingSystem -like "Windows Server*"} -Properties IPv4Address,OperatingSystem,proxyaddresses | Select-Object Name,DNSHostName,IPv4Address,OperatingSystem,proxyaddresses | foreach {

    $hashTable = @{}
    $hashTable.add("Name", $_.Name)
    $hashTable.add("DNSHostName", $_.DNSHostName)
    $hashTable.add("IPv4Address", $_.IPv4Address)
    $hashTable.add("OperatingSystem", $_.OperatingSystem)
    $hashTable.add("proxyaddresses", $($_.proxyaddresses -join ", "))

    $itemProperty = Invoke-command -ComputerName $_.DNSHostName -ScriptBlock {
        Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select-Object *proxy*
    }

    $hashTable.add("ProxyEnable", $itemProperty.ProxyEnable)
    $outputList += New-Object PSObject -Property $hashTable
}

$outputList | ft
...