我想使用PowerShell重新启动远程机器上的服务。 该服务具有显示名称和实例名称。 我可以使用Restart-Service cmdlet来执行此操作吗? 我没有看到一个instancename参数,我似乎无法使“displayname $ instancename”的语法工作。
这个语法不起作用:
Invoke-Command -Session $session -ScriptBlock {Restart-Service -displayname 'DisplayName$InstanceName' -PassThru}
我首先想到的问题是$字符,但是我发现这个语法是可行的:
Get-Service 'displayname$instancename'
尝试在第一个命令中切换到单引号。 双引号正在执行variablesreplace。
我使用以下代码在远程系统上重新启动服务。 如果您没有权限,则可能需要添加-credentials
标记。 这是非常好的,因为它也可以在Server 2003 / Windows XP上运行。
$Service = "InstanceNameOfService" $Computer = "MyComputer" $varService = Get-WmiObject -computername $Computer -class win32_service | Where-Object { $_.Name -eq $Service } $varService.restartservice()