Como faço para desligar, reiniciar ou fazer logoff do Windows através de um arquivo de morcego?
-
03-07-2019 - |
Pergunta
Eu tenho usado Remote Desktop Connection para entrar em uma estação de trabalho. Mas neste ambiente, eu não posso usar as opções de energia no Menu Iniciar. Eu preciso de uma maneira alternativa para desligar ou reiniciar.
Como faço para controlar o estado de energia do meu computador através da linha de comando?
Solução
As formas mais comuns para usar a shutdown
comando são:
-
shutdown -s
-. Desliga -
shutdown -r
-. Restarts -
shutdown -l
-. Logs off -
shutdown -h
-. HibernaNota: Não é uma armadilha comum onde os usuários pensam meios
-h
"ajuda" (que ele faz para todos os outros programas de linha de comando ... excetoshutdown.exe
, onde ela significa "hibernação"). Eles, então, executarshutdown -h
e acidentalmente desligar seus computadores. Cuidado com isso. -
shutdown -i
- "O modo interativo". Em vez de executar uma ação, ela exibe um diálogo GUI. -
shutdown -a
-. Aborta um comando anterior desligamento
Os comandos acima podem ser combinados com estas opções adicionais:
-
-f
- As forças de programas para sair. Impede que o processo de desligamento de ficar presa. -
-t <seconds>
- Define o tempo até o desligamento. Use-t 0
para desligar imediatamente. -
-c <message>
- Adiciona uma mensagem de desligamento. A mensagem vai acabar no log de eventos. -
-y
-. Forças uma resposta "sim" a todas as consultas de desligamentoNota: Esta opção não é documentado em qualquer documentação oficial. Foi descoberto por esses usuários StackOverflow .
Eu quero certificar-se de algumas outras respostas muito boas também são mencionados juntamente com este. Aqui eles estão em nenhuma ordem particular.
- O opção
-f
de < a href = "https://stackoverflow.com/users/672/kogus"> JosephStyons - Usando
rundll32
de VonC - The Run caixa de < a href = "https://stackoverflow.com/users/14966/dean"> Dean
- desligamento remoto a partir de Kip
Outras dicas
Se você estiver em um computador remoto, você pode também querer adicionar a opção -f para força a reinicialização. Caso contrário, sua sessão pode fechar e um aplicativo teimosa pode travar o sistema.
Eu uso isso quando eu quiser forçar uma reinicialização imediata:
shutdown -t 0 -r -f
Para uma mais amigável "dar-lhes algum tempo" opção, você pode usar isto:
shutdown -t 30 -r
Como você pode ver nos comentários, o -f está implícito o tempo limite.
Brutus 2006 é um utilitário que fornece uma interface gráfica para estas opções.
Ninguém opção -m
para desligamento remoto mencionado:
shutdown -r -f -m \\machinename
Além disso:
- O parâmetro
-r
provoca uma reinicialização (que é geralmente o que você quer em uma máquina remota, desde o início fisicamente pode ser difícil). - A opção parâmetro força
-f
a reinicialização. - Você deve ter privilégios apropriados para desligar a máquina remota, é claro.
resposta Original: outubro 2008
Você também tem todo o " serie: rundll32.exe shell32.dll
"
(veja update abaixo)
-
rundll32.exe user.exe,**ExitWindows**
[desligamento rápido do Windows] -
rundll32.exe user.exe,**ExitWindowsExec**
[Restart do Windows]rundll32.exe shell32.dll,SHExitWindowsEx n
onde n
significa:
- 0 -
LOGOFF
- 1 -
SHUTDOWN
- 2 -
REBOOT
- 4 -
FORCE
- 8 -
POWEROFF
(pode ser combinado -> 6 = 2 + 4 FORCE REBOOT
)
Atualização abril 2015 (6+ anos mais tarde):
1800 INFORMATION pontos amáveis ??fora nos comentários :
Não use
rundll32.exe
para esta finalidade. Espera-se que a função que passou na linha de comando tem uma assinatura do método muito específico - que não coincide com a assinatura do método deExitWindows
.
Raymond Chen escreveu:
A assinatura da função necessária para funções chamadas por
rundll32.exe
é:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Isso não impediu as pessoas de usar
rundll32
para chamar funções aleatórias que não foram projetados para ser chamado porrundll32
, comouser32 LockWorkStation
ouuser32 ExitWindowsEx
.
(oops)
A assinatura da função real para ExitWindowsEx é:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
E para torná-lo cristalina:
Rundll32
é uma sobra do Windows 95, e foi substituído desde pelo menos o Windows Vista, pois viola uma série de diretrizes de engenharia moderna.
Outra pequena dica: quando vai a rota arquivo de lote, eu gostaria de ser capaz de abortar em caso eu executá-lo acidentalmente. Portanto, o arquivo batch invoca o desligamento, mas deixa-lo no prompt de comando depois.
@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r
Além disso, uma vez que é em um timer, você tem aproximadamente a mesma emoção como você faz quando caça em The Oregon Trail .
Quando controlado remotamente em uma máquina (alvo é o Windows XP de qualquer maneira, eu não estou certo sobre destino do Windows Vista), embora Shutdown no menu de início é substituída por Desligue Session ou algo parecido, deve haver um chamado 'Segurança do Windows', que também faz a mesma coisa como Ctrl + Alt + Terminar como apontado para por Owen.
Você provavelmente está ciente disso, mas apenas no caso de:. É muito mais fácil com o tipo de apenas shutdown -r
(ou qualquer comando que você como) na caixa "Executar" e pressione Enter
Salva deixando arquivos em lote em torno de mentir em todos os lugares.
Eu estou atrasado para a festa, mas não vi essa resposta ainda. Quando você não quiser usar um arquivo de lote ou digite o comando. Você pode apenas definir o foco para a área de trabalho e, em seguida, usar Alt + F4 .
O Windows irá pedir-lhe o que você quer fazer, selecione desligar ou reiniciar.
Para screenshots e até mesmo um vídeo, consulte: https: / /tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp