Como reinicio um serviço em uma máquina remota no Windows? [fechadas]

138

Às vezes, durante a depuração, preciso reiniciar um serviço em uma máquina remota. Atualmente, estou fazendo isso via Área de Trabalho Remota. Como isso pode ser feito a partir da linha de comando na minha máquina local?

Josh Kodroff
fonte
1
Nenhuma dessas respostas explica como executar a inicialização remota, enquanto lida com as permissões de usuário necessárias para executar a chamada de serviço.
precisa

Respostas:

206

Você pode usar o console de serviços, clicando no lado esquerdo e selecionando a opção "Conectar a outro computador" no menu Ação.

Se você deseja usar apenas a linha de comando, pode usar

sc \\machine stop <service>
Vinko Vrsalovic
fonte
1
Funciona perfeitamente no cmd.exe. Não funciona no PowerShell, provavelmente por causa do erro \\, a seguir: Set-Content: Não foi possível encontrar um parâmetro que corresponda ao nome do parâmetro '[o nome do serviço]'. Apenas uma pequena desvantagem é que ele retorna à linha de comando antes que a operação seja concluída.
21713 Josh Kodroff
4
uma vez que o comando sc funciona asyncronously, se você precisa de um script de reinicialização do serviço, dê uma olhada nas scripts em lote I publicados aqui: stackoverflow.com/questions/1405372/...
Eric Falsken
6
No Powershell você precisa usar sc.exe \\machine stop <service>. Caso contrário, acho que sc se refere a um comando diferente.
CJBrew
5
Qual é o conjunto mínimo de permissões necessárias para um usuário iniciar um serviço remoto específico no computador remoto?
huseyint
+1 isso funciona sem problemas no PowerShell, ao contrário de Invoke-Command \\ remote_machine {Start-Service ...} (que requer o Gerenciamento Remoto do Windows configurado no remote_machine), e ele vence o PsTools, pois o sc.exe vem por padrão com a instalação do Windows
hello_earth 19/07/11
41

Você pode usar mmc:

  1. Comece a correr. Digite "mmc".
  2. Arquivo / Adicionar / Remover Snap-in ... Clique em "Adicionar ..."
  3. Encontre "Serviços" e clique em "Adicionar"
  4. Selecione "Outro computador:" e digite o nome do host / endereço IP da máquina remota. Clique em Concluir, Fechar, etc.

Nesse ponto, você poderá gerenciar serviços como se estivessem em sua máquina local.

Ryan Duffield
fonte
1
Ops, não recebi o requisito de "linha de comando".
Ryan Duffield
7
Que porta (s) eu precisaria desbloquear no meu servidor?
The Muffin Man
2
Isto é ouro. Sempre acessei servidores remotamente para lidar com serviços. Agora, com isso, posso ter uma lista de servidores diferentes no mesmo console.
Alan
9

Você pode usar o comando PSEXEC do sistema interno para executar remotamente um serviço de parada de rede e , em seguida, início de serviço de rede

Philibert Perusse
fonte
O PSService também é útil. Há muito poder nessas ferramentas.
Brad Bruce
7

Usando a linha de comando, você pode fazer isso:

AT \\computername time "NET STOP servicename"
AT \\computername time "NET START servicename"
Andrew Moore
fonte
5
para deixar claro, o comando "AT" usa o agendador do Windows para agendar um comando. é um exagero criar scripts para vários comandos remotos e não garante a ordem de execução ou a conclusão do comando antes do próximo comando. O comando SC é muito melhor para isso. Dê uma olhada nos scripts em lote que eu postei nesta pergunta: stackoverflow.com/questions/1405372/…
Eric Falsken
1

Eu sugiro que você dê uma olhada no RSHD

Você não precisa se preocupar com um cliente, o Windows o possui por padrão.

tafa
fonte
0

Bem, se você possui o Visual Studio (eu sei que é em 2005, embora não tenha certeza das versões anteriores), você pode adicionar a máquina remota à sua tag "Server Explorer". Nesse ponto, você terá acesso aos SERVIÇOS que estão sendo executados ou podem ser executados a partir dessa máquina (além de logs de eventos, filas e algumas outras coisas interessantes).

Stephen Wrighton
fonte
Estranhamente, isso funciona no VS2005, mas NÃO no VS2008. Você ainda pode procurar os serviços, mas não pode mais iniciá-los ou pará-los diretamente. Em vez disso, você pode clicar com o botão direito do mouse no nó Serviços e iniciar o Service Manager para esse host.
3189 Peter Wone
0

Uma maneira seria habilitar o servidor telnet na máquina em que você deseja controlar os serviços (adicionar / remover componentes do Windows)

Prompt aberto do
tipo Digite telnet yourmachineip / name Tipo de
logon
net start & serviceName * por exemplo, w3svc

Isso iniciará o IIS ou você poderá usar o net stop para interromper um serviço.

Dependendo da sua configuração, você precisa procurar uma maneira de proteger a conexão telnet, pois acho que ela não está criptografada.

alexmac
fonte
2
O Telnet definitivamente não é criptografado.
21339 Josh Kodroff
0

Várias boas soluções aqui. Se você ainda está no Win2K e não consegue instalar nada no computador remoto, isso também funciona:

Abra o Console de Gerenciamento do Computador (clique com o botão direito do mouse em Meu Computador, escolha Gerenciar; abra em Ferramentas Administrativas no Menu Iniciar ou abra no MMC usando o snap-in).

Clique com o botão direito do mouse no nome do seu computador e escolha "Conectar ao Computador Remoto"

Coloque o nome e as credenciais do computador e você terá acesso total a muitas funções administrativas, incluindo o painel de controle de serviços.


fonte