Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
powershell在多个远程服务器上管理多个windows服务_Windows_Powershell_Service_Remote Server - Fatal编程技术网

powershell在多个远程服务器上管理多个windows服务

powershell在多个远程服务器上管理多个windows服务,windows,powershell,service,remote-server,Windows,Powershell,Service,Remote Server,我想在多个远程服务器上启动/停止一组windows服务。我已经创建了一个powershell,在其中我将在csv文件中传递服务器名称和服务的值。但我希望这应该是以下方式:- 一个文本文件shd包含远程服务器列表 一个文本文件shd包含服务列表 一个powershell脚本,用于启动或停止第一个文本文件中列出的第一台服务器上的第二个文本文件中提到的所有服务,第一台服务器完成后,它将转到第二台服务器,提供所有这些服务,依此类推,直到远程服务器列表中的最后一个条目。您可以将服务名称作为逗号分隔的列表放

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

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

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


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

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

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
}

我已经找到了解决上述问题的办法

我创建了两个单独的文本文件,一个用于服务器名,比如说
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
    }
}

再次感谢所有在这里回答我问题的人。

是否存在依赖关系?即,在转到下一台服务器之前,是否所有服务都需要处于启动或停止状态?如果服务无法启动,或在启动或停止状态下挂起,您是否需要处理异常和错误?确定。那么在解决这个问题的过程中你尝试了什么?你在什么时候被卡住了。展示你的工作-不要要求这里的人为你做所有的事情。嗨,mjolinor和alroc,我已经写了一个powershell脚本如下:导入Csv服务器和ServiceName.Csv |获取服务|启动服务,在Csv文件中我作为计算机名和服务名传递给下面的人:ComputerName,name Server1,服务1我关心的是,如果我需要在多个服务器上管理多个服务,那么我需要为单个服务器上的每个服务编写单独的代码行,然后为下一个服务器编写相同的代码行。我只是想避免冗长的csv文件和我在问题中提到的两个简单的文本文件。欢迎任何建议。这不是一个好的解决方案,因为主机名和服务之间的唯一关联是两个单独文件中的行号。这会以并行方式发生吗?