windows - comando - ms dos echo off




Come posso spegnere, riavviare o disconnettere Windows tramite un file bat? (6)

Nessuno ha menzionato l'opzione -m per lo spegnimento remoto:

shutdown -r -f -m \\machinename

Anche:

  • Il parametro -r provoca un riavvio (che di solito è ciò che si desidera su una macchina remota, poiché l'avvio fisico potrebbe essere difficile).
  • L'opzione -f parametro forza il riavvio.
  • È necessario disporre dei privilegi appropriati per spegnere la macchina remota, ovviamente.

Ho usato Remote Desktop Connection per entrare in una workstation. Ma in questo ambiente, non posso usare le opzioni di risparmio energia nel menu Start. Ho bisogno di un modo alternativo di spegnimento o riavvio.

Come controllo lo stato di alimentazione del mio computer tramite la riga di comando?


Probabilmente ne sei a conoscenza, ma per ogni evenienza: è molto più semplice digitare shutdown -r (o qualsiasi comando tu voglia) nella casella "Esegui" e premere invio.

Salva i file batch in uscita ovunque.


Risposta originale: ottobre 2008

Hai anche tutto il " rundll32.exe shell32.dll " Serie:

(vedi aggiornamento sotto)

  • rundll32.exe user.exe,**ExitWindows** [Arresto rapido di Windows]
  • rundll32.exe user.exe,**ExitWindowsExec** [Riavvia Windows]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

dove n sta per:

  • 0 - LOGOFF
  • 1 - SHUTDOWN
  • 2 - REBOOT
  • 4 - FORCE
  • 8 - POWEROFF

(può essere combinato -> 6 = 2 + 4 FORCE REBOOT )

Aggiornamento aprile 2015 (6+ anni dopo):

1800 INFORMAZIONI gentilmente sottolinea nei commenti :

Non utilizzare rundll32.exe per questo scopo. Si aspetta che la funzione trasmessa sulla riga di comando abbia una firma del metodo molto specifica - non corrisponde alla firma del metodo di ExitWindows .

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 effettiva 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 molte delle moderne linee guida di progettazione.


Scriverò questo in Notepad o WordPad per un comando di disconnessione di base:

@echo off
shutdown -l

Questo è praticamente lo stesso di fare clic su start e logoff manualmente, ma è leggermente più veloce se il file batch è pronto.


Sono in ritardo per la festa, ma non ho ancora visto questa risposta. Quando non si desidera utilizzare un file batch o digitare il comando. È sufficiente impostare lo stato attivo sul desktop e quindi utilizzare Alt + F4 .

Windows ti chiederà cosa vuoi fare, seleziona shutdown o restart.

Per screenshot e anche un video, vedi: https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp


Un altro piccolo suggerimento: quando si avvia il percorso del file batch, mi piace essere in grado di interromperlo nel caso lo avessi eseguito accidentalmente. Quindi il file batch richiama l'arresto ma in seguito ti lascia al prompt dei comandi.

@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r

Inoltre, dal momento che è su un timer, si ottiene la stessa emozione come si fa quando si caccia in The Oregon Trail .







shutdown