可能我在这里错过了一些关键点:
我试图修改PowerShell
脚本,它停止服务,复制数据,然后在另一台机器上再次启动服务。
一切正常,但默认Get-Service
,如下所示:
Get-Service -Name $serviceName -ComputerName $serverName | Set-Service -Status Stopped
我无法获得服务,无论是通过IP,完全合格的服务器名称,还是我能想到的所有其他名称。所以我想,在服务器上创建一个小型代理脚本是个好主意,非常简单:
param (
[string]$serviceName,
[string]$command
)
"Received: " + $serviceName
"Received: " + $command
$serverName = "xx"
if ($command -eq "Stop")
{
"Stopping Service: " + $serviceName
Get-Service -Name $serviceName -ComputerName $serverName | Set-Service -Status Stopped
}
if ($command -eq "Start")
{
"Starting Service: " + $serviceName
Get-Service -Name $serviceName -ComputerName $serverName | Set-Service -Status Running
}
如果我直接在服务器上运行此脚本,但是如果我通过本地脚本调用它,则通过以下方式执行此操作:
$proxyScriptForServicesPath = $serverRootPath + "HandleWindowsServices.ps1"
$serviceName = $servicePrefix + $folder
$scriptArguments = @()
$scriptArguments += ("-serviceName", $serviceName)
$scriptArguments += ("-command", "stop")
# Stop the Service
Invoke-Expression "$proxyScriptForServicesPath $scriptArguments"
我再次收到消息,即使值完全相同,也无法找到服务。 我想我不能轻易超越系统,但我在这里缺少什么?