Sto usando Remote Desktop Connection per entrare in una stazione di lavoro. Ma in questo ambiente, non posso usare le opzioni di alimentazione nel menu Start. Ho bisogno di un modo alternativo per spegnere o riavviare.
Come posso controllare lo stato di alimentazione del mio computer attraverso la riga di comando?
I modi più comuni di usare il comando shutdown
sono:
shutdown -s
- Spegne.
shutdown -r
- Riavvia.
shutdown -l
- Fa il logout.
shutdown -h
- Si iberna.
Nota: C'è un trabocchetto comune in cui gli utenti pensano che -h
significhi "help" (cosa che fa per ogni altro programma a riga di comando... eccetto shutdown.exe
, dove significa "hibernate"). Poi eseguono shutdown -h
e spengono accidentalmente i loro computer. Fate attenzione a questo.
shutdown -i
- "Modalità interattiva". Invece di eseguire un'azione, visualizza una finestra di dialogo GUI.
shutdown -a
- Interrompe un precedente comando di spegnimento.
I comandi di cui sopra possono essere combinati con queste opzioni aggiuntive:
-f
- Forza i programmi ad uscire. Impedisce che il processo di spegnimento si blocchi.
-t <seconds>
- Imposta il tempo fino allo spegnimento. Usa -t 0
per spegnere immediatamente.
-c <message>
- Aggiunge un messaggio di spegnimento. Il messaggio finirà nel registro degli eventi.
-y
- Forza una risposta "yes" a tutte le richieste di spegnimento.
Nota: Questa opzione non è documentata in nessuna documentazione ufficiale. È stata scoperta da questi utenti di StackOverflow.
Voglio assicurarmi che alcune altre risposte davvero buone siano anche menzionate insieme a questa. Qui sono in nessun ordine particolare.
Se siete su una macchina remota, potreste anche voler aggiungere l'opzione -f per forzare il riavvio. Altrimenti la vostra sessione potrebbe chiudersi e un'applicazione ostinata potrebbe bloccare il sistema.
Io lo uso ogni volta che voglio forzare un riavvio immediato:
shutdown -t 0 -r -f
Per un'opzione più amichevole "dagli un po' di tempo", puoi usare questo:
shutdown -t 30 -r
Come potete vedere nei commenti, la -f è implicita nel timeout.
Brutus 2006 è un'utility che fornisce una GUI per queste opzioni.
Risposta originale: Ottobre 2008
Hai anche tutti i " serie:rundll32.exe shell32.dll
"
(vedi aggiornamento qui sotto)
rundll32.exe user.exe,**ExitWindows**
[Arresto rapido di Windows]
rundll32.exe user.exe,**ExitWindowsExec**
[Riavvio di Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
dove n
sta per:
LOGOFF
SHUTDOWN
REBOOT
FORZA
POWEROFF
(può essere combinato -> 6 = 2+4 FORCE REBOOT
)
1800 INFORMAZIONI fa gentilmente notare nei commenti:
Non usare
rundll32.exe
per questo scopo. Si aspetta che la funzione passata sulla linea di comando abbia una firma di metodo molto specifica - non corrisponde alla firma di metodo diExitWindows
.
Raymond CHEN ha scritto:
La firma della funzione richiesta per le funzioni chiamate da rundll32.exe
è:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Questo non ha impedito alla gente di usare rundll32
per chiamare funzioni casuali che non sono state progettate per essere chiamate da rundll32
, come user32 LockWorkStation
o user32 ExitWindowsEx
.
(oops)
La firma della funzione attuale per ExitWindowsEx è:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
E per renderlo cristallino:
Rundll32
è un residuo di Windows 95, ed è stato deprecato almeno da Windows Vista perché viola un sacco di linee guida di ingegneria moderna.