Ouput服务器名称以及服务的安装状态

时间:2018-10-03 12:49:36

标签: powershell

我对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 :(得分:1)

我建议采用以下方法:

$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文件。

最后写一个文件将节省i / o操作,因此可以节省时间。在此示例中,Get-WindowsFeature是一个相对较慢的操作,因此可能没有什么区别,但是仍然可以很好地理解该理论。