Имя сервера Ouput вместе с InstallState службы - PullRequest
0 голосов
/ 03 октября 2018

Я довольно новичок в Powershell.У меня есть следующий простой маленький скрипт:

$serversall = (Get-Content ".\Servers.txt")  
foreach($vm in $serversall){ 
  Get-WindowsFeature Web-Server -ComputerName $vm | 
  Select-Object InstallState |
  Export-Csv -path E:\Scripts\Output\IISWebServersStatus.csv -Append
}

Это просто дает мне один столбец, чтобы сообщить мне, если статус «Установлен» или «Доступен».Я хочу еще один столбец, который также показывает имя сервера рядом со статусом службы.Есть идеи, как мне это сделать?

1 Ответ

0 голосов
/ 03 октября 2018

Я бы рекомендовал следующий подход:

$serversall = (Get-Content ".\Servers.txt")
$output = @()
foreach($vm in $serversall) { 
  $installed = (Get-WindowsFeature Web-Server -ComputerName $vm).InstallState
  $output += New-Object PSCustomObject -Property @{'ComputerName'=$vm; 'Status'=$installed }
}

$output | Export-Csv -path E:\Scripts\Output\IISWebServersStatus.csv -Append

Создать массив $output, который можно использовать для хранения всей информации.На каждой итерации цикла создайте объект, содержащий имя сервера и состояние установки, и добавьте его в выходной массив.

После завершения цикла запишите выходной массив в файл csv.

Выполнение одной записи файла в конце сэкономит на операциях ввода-вывода, поэтому может сэкономить время.В этом примере Get-WindowsFeature является относительно медленной операцией, поэтому, вероятно, она не имеет большого значения, но, тем не менее, хорошо понимает теорию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...