Вывод результатов "foreach" в CSV (с неповрежденными столбцами) (перечисление всех служб на всех серверах в AD) - PullRequest
1 голос
/ 24 декабря 2011

Используя следующий код:

   # List all servers
    $servers = Get-QADComputer -OSName *server*,*hyper-v*

    # Looping through the servers
    foreach ($server in $servers) {
    $i++
    $intSize = $intSize + $server.Length

    # Writing statusbar
    Write-Progress -activity "Scanning servers . . ." -status "Scanned: $i of $($servers.length) - Working on $($server.name)" -percentComplete (($i / $servers.length)  * 100)

    # Pinging the server in Powershell-way!
    if (Test-Connection -ComputerName $server.name -count 1 -Quiet ) {
        echo $server.name
    }
}
$respondingservers = $i - $notresponding

Я перебираю свой список из 270 серверов AD и подсчитываю, кто в сети, запускает snmp, wmi и т. Д. Но я не хочу указывать, какие службы проверять, и получать полный список на каждом сервере. Я хотел бы вывести это в CSV, чтобы я мог импортировать его в Excel и отсортировать по названию сервиса и т. Д. Это, конечно, означает, что его нужно выводить разумным способом.

Например, если на сервере X запущен DNS-сервер, и он заканчивается в столбце 4, все следующие результаты DNS-сервера должны оказаться в том же столбце в моей электронной таблице.

Я прошу слишком многого или это можно сделать? Сейчас я даже не могу выводить в CSV, поэтому любая помощь будет с благодарностью.

1 Ответ

2 голосов
/ 24 декабря 2011

Вы можете экспортировать информацию об услугах для ваших серверов следующим образом:

    # Pinging the server in Powershell-way!
    if (Test-Connection -ComputerName $server.name -count 1 -Quiet ) {
        echo $server.name
        $services = $services, (get-wmiobject -ComputerName $server.name win32_service | select systemname, name, started)
    }
}
# export information about services to csv file
$services | Export-Csv services.csv -NoTypeInformation

Это создаст CSV-файл со следующей структурой:

"systemname","name","started"
"SERVER01","AeLookupSvc","False"
"SERVER02","AeLookupSvc","False"
...

Этот csv может затем использоваться для создания сводной таблицы в Excel (строки = имя системы, столбцы = имя) для отображения необходимой информации.

...