Usando o cmdlet do PowerShell Restart-Service com um serviço que tem um nome de instância

2

Eu quero reiniciar um serviço em um computador remoto usando o PowerShell. O serviço tem um nome de exibição e um nome de instância. Posso usar o cmdlet Restart-Service para fazer isso? Não vejo um parâmetro instancename, e não consigo fazer a sintaxe "displayname $ instancename" funcionar.

Esta sintaxe não funciona:

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

Eu achei que no início o problema era o caracter $, mas descobri que essa sintaxe funciona:

Get-Service 'displayname$instancename'
    
por dthrasher 17.08.2012 / 20:45

2 respostas

1

Tente alternar para aspas simples no primeiro comando. As aspas duplas são pré-formando a substituição de variáveis.

    
por 17.08.2012 / 20:48
0

Eu uso o seguinte código para reiniciar serviços em sistemas remotos. Pode ser necessário adicionar a tag -credentials se você não tiver permissões. Isso é muito bom porque funciona também nas caixas Server 2003 / Windows XP.

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