Powershell 输出服务器名称和InstallState of Service
我对Powershell很陌生。我有以下简单的小脚本:Powershell 输出服务器名称和InstallState of Service,powershell,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 -
$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
}
这只给了我一列,让我知道状态是“已安装”还是“可用”。我想要另一列,它也会在服务状态旁边显示服务器名称。你知道我将如何做到这一点吗?我建议采用以下方法:
$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
是一个相对缓慢的操作,因此可能没有什么区别,但是理解理论还是很好的 太好了!非常感谢。