如何在PowerShell脚本中检查不同服务器上的多个服务?

-2 powershell

我有3台服务器

服务器a,服务器b,服务器c

我想查看3项服务,

service = serva,servb,servc

服务器a包含serva和servb

服务器b包含servb和serv c

server c仅包含servc

我已经看过一个用于检查不同服务器上的不同服务的脚本,但我想不出一种方法来编辑它以满足我的需求.任何人都可以帮我讨论如何检查不同服务器中的多个服务(有些是相同的)?

小智 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 @_ }
Run Code Online (Sandbox Code Playgroud)

现在我在那里做了很多高级的东西.我们可以通过将您的数据放入CSV文件来实现这一点.只需使用ComputerName和ServiceName作为列来适应此示例.每行只需一台服务器和一台服务.

$services = Import-CSV servicelist.txt
$services | %{Get-Service -Computername $_.Computername -ServiceName $_.ServiceName}
Run Code Online (Sandbox Code Playgroud)

默认输出可能不显示计算机名称,因此最好将其输出到Select-Object MachineName, Name, Status.