我有3台服务器
服务器a,服务器b,服务器c
我想检查3项服务,
service = serva,servb,servc
服务器a包含serva和servb
服务器b包含servb和serv c
服务器c仅包含servc
我已经看过一个用于检查不同服务器上的不同服务的脚本,但我想不出一种方法来编辑它以满足我的需求。任何人都可以帮我讨论如何在不同的服务器上检查多个服务(有些是相同的)吗?
答案 0 :(得分:5)
以下是一种方法:
$services = @( @{Computername="ServerA"; ServiceName="ServiceA"},
@{Computername="ServerA"; ServiceName="ServiceB"},
@{Computername="ServerB"; ServiceName="ServiceB"},
@{Computername="ServerB"; ServiceName="ServiceC"},
@{Computername="ServerC"; ServiceName="ServiceC"}
)
$services | %{Get-Service -Computername $_.Computername -ServiceName $_.ServiceName}
# Because I used a hashtable with full parameter names for $services, I can do this trick
$services | %{Get-Service @_ }
现在我在那里做了很多高级的东西。我们可以通过将您的数据放入CSV文件来实现这一点。只需使用ComputerName和ServiceName作为列来适应此示例。每行只需一台服务器和一台服务。
$services = Import-CSV servicelist.txt
$services | %{Get-Service -Computername $_.Computername -ServiceName $_.ServiceName}
默认输出可能不会显示计算机名称,因此最好将其输出到Select-Object MachineName, Name, Status
。