将 PowerShell Restart-Service cmdlet 与具有实例名称的服务一起使用

将 PowerShell Restart-Service cmdlet 与具有实例名称的服务一起使用

我想使用 PowerShell 重新启动远程计算机上的服务。该服务既有显示名称,又有实例名称。我可以使用 Restart-Service cmdlet 来执行此操作吗?我没有看到实例名称参数,而且我似乎无法使“displayname$instancename”语法起作用。

此语法无效:

Invoke-Command -Session $session -ScriptBlock {Restart-Service -displayname 'DisplayName$InstanceName' -PassThru}

我起初以为问题出在 $ 字符上,但我发现这种语法确实有效:

Get-Service 'displayname$instancename'

答案1

尝试在第一个命令中切换到单引号。双引号正在执行变量替换。

答案2

我使用以下代码重新启动远程系统上的服务。-credentials如果您没有权限,则可能需要添加标签。这非常好,因为它也适用于 Server 2003/Windows XP 机器。

$Service = "InstanceNameOfService"
$Computer = "MyComputer"
$varService = Get-WmiObject -computername $Computer -class win32_service | Where-Object { $_.Name -eq $Service }
$varService.restartservice()

相关内容