$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
}
如果服务相同但是有不同的服务要检查,那么这是有效的吗?
答案 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
}