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

时间:2013-11-02 07:21:34

标签: powershell powershell-v3.0

$c = Get-Content D:\Users\vbaranwa\Desktop\vb.txt
for ($i = 0; $i-le $c.count; $i++) {
  $a = ($c)[$i]
  Get-Service -ComputerName $a -Name Power | select Name, MachineName, Status 
}

如果服务相同但是有不同的服务要检查,那么这是有效的吗?

1 个答案:

答案 0 :(得分:2)

对于Name参数,您可以指定多个模式,并且可以在模式中使用通配符。您可以使用get-service命令作为以下内容:

$c= Get-Content D:\Users\vbaranwa\Desktop\vb.txt
for($i=0; $i-le $c.count; $i++)
{
    $a=($c)[$i]
    get-service -ComputerName $a -Name *pattern1*, *pattern2*, *pattern3* |select Name, MachineName, Status
}

您可以参考以下链接,了解如何使用此命令的参数: Get-Service Cmdlet

我做了一些搜索,发现这个SO链接应该说的是你遇到的同样问题: How to check if a particular service is running in a remote computer using PowerShell

您可以参考SO链接来配置哪个服务器在代码中具有哪个服务,或者您可以对vb.txt文件进行更改(我假设此文件仅包含服务器名称)以配置哪个服务器具有哪些服务如:

server1, service1
server2, service2
server3, service3
server3, service4

然后代码将更改为:

$c= Import-CSV -header server, service D:\Users\vbaranwa\Desktop\vb.txt
for($i=0; $i-le $c.count; $i++)
{
    $server  = $c[$i].server
    $service = $c[$i].service
    get-service -ComputerName $server -Name $service |select Name, MachineName, Status
}