powershell管理多个远程服务器上的多个Windows服务

时间:2014-03-12 10:35:40

标签: windows powershell service remote-server

我想在多个远程服务器的每一个上启动/停止一组Windows服务。我创建了一个powershell,我在其中传递服务器名称和服务的csv文件中的值。但我希望这应该是以下面的方式: -

一个文本文件shd包含远程服务器列表

一个文本文件shd包含服务列表。

一个powershell脚本,它将启动或停止第一个文本文件中列出的第一个服务器上的第二个文本文件中提到的所有服务,一旦完成第一个服务器,它就会转到带有所有这些服务的第二个服务器,依此类推,直到最后一个条目在远程服务器列表中。

2 个答案:

答案 0 :(得分:2)

我已找到上述解决方案。

我创建了两个单独的文本文件,一个用于服务器名称servers.txt,另一个用于服务名称services.txt

在我的PowerShell脚本中,我已在下面写过,并且对我很好:

$serverList  = gc servers.txt
$serviceList = gc services.txt

ForEach ($server in $serverList)
{
    ForEach ($service in $serviceList)
    {
        Get-Service -Name $service -ComputerName $server | Start-service
    }
}

再次感谢所有在我的问题上做出回应的人。

答案 1 :(得分:0)

您可以将服务名称作为以逗号分隔的列表放在以制表符分隔的文件中:

Hostname    Services
HostA   ServiceA,ServiceB
HostB   ServiceA,ServiceC,ServiceD
HostC   ServiceB,ServiceC

并像这样处理文件:

Import-Csv C:\path\to\list.tsv -Delimiter "`t" | % {
  $services = $_.Services -split ','
  Start-Service -Computer $_.Hostname -Name $services
}