J’ai utilisé la [Connexion Bureau à distance][1] pour accéder à un poste de travail. Mais dans cet environnement, je ne peux pas utiliser les options d'alimentation du menu Démarrer. J'ai besoin d'un autre moyen d'arrêter ou de redémarrer.
Comment puis-je contrôler l'état d'alimentation de mon ordinateur via la ligne de commande ?
[1] : https://en.wikipedia.org/wiki/Remote_Desktop_Services#Remote_Desktop_Connection
Les façons les plus courantes d'utiliser la commande [shutdown
][1] sont les suivantes :
shutdown -s
- Arrête le système.
shutdown -r
- Redémarre.
shutdown -l
- Se déconnecter.
shutdown -h
- Met en veilleuse.
**Remarque : Il existe un piège commun où les utilisateurs pensent que "h" signifie "aide" (ce qui est le cas pour tous les autres programmes en ligne de commande... sauf "shutdown.exe", où il signifie "hibernation"). Ils exécutent alors shutdown -h
et éteignent accidentellement leur ordinateur. Faites attention à cela.
shutdown -i
- "Mode interactif" ;. Au lieu d'exécuter une action, il affiche une boîte de dialogue GUI.
shutdown -a
- Abandonne une commande d'arrêt précédente.
Les commandes ci-dessus peuvent être combinées avec ces options supplémentaires :
-f
- Force les programmes à se terminer. Empêche le processus d'arrêt d'être bloqué.
-t <seconds>
- Définit le temps avant l'arrêt. Utilisez -t 0
pour vous arrêter immédiatement.
-c <message>
- Ajoute un message d'arrêt. Le message sera enregistré dans le journal des événements.
-y
- Force une réponse "yes" ; à toutes les requêtes d'arrêt.
Note: Cette option n'est pas documentée dans la documentation officielle. Elle a été découverte par [ces utilisateurs de StackOverflow][2].
Je veux m'assurer que d'autres très bonnes réponses sont également mentionnées avec celle-ci. Les voici, sans ordre particulier.
-f
] [3] de [JosephStyons] [4]rundll32
][5] de [VonC][6][1] : https://ss64.com/nt/shutdown.html [2] : https://stackoverflow.com/questions/46071009/what-exactly-does-shutdown-y-do [3] : https://stackoverflow.com/questions/162304/how-do-i-shutdown-restart-logoff-via-bat-file#162342 [4] : https://stackoverflow.com/users/672/kogus [5] : https://stackoverflow.com/questions/162304/how-do-i-shutdown-restart-logoff-via-bat-file#162398 [6] : https://stackoverflow.com/users/6309/vonc [7] : https://stackoverflow.com/questions/162304/how-do-i-shutdown-restart-logoff-via-bat-file#162428 [8] : https://stackoverflow.com/users/14966/dean [9] : https://stackoverflow.com/questions/162304/how-do-i-shutdown-restart-logoff-windows-via-bat-file#416830 [10] : https://stackoverflow.com/users/18511/kip
Si vous êtes sur une machine distante, vous pouvez également ajouter l'option -f pour forcer le redémarrage. Sinon, votre session peut se fermer et une application récalcitrante peut bloquer le système.
Je l'utilise chaque fois que je veux forcer un redémarrage immédiat :
shutdown -t 0 -r -f
Pour une option plus conviviale de type "laissez-leur du temps", vous pouvez utiliser ceci :
shutdown -t 30 -r
Comme vous pouvez le voir dans les commentaires, le -f est impliqué par le délai d'attente.
[Brutus 2006 est un utilitaire qui fournit une interface graphique pour ces options][1].
Réponse originale : Oct. 2008
Vous avez également tous les " série :rundll32.exe shell32.dll
"
(voir mise à jour ci-dessous)
rundll32.exe user.exe,**ExitWindows**
[Fermeture rapide de Windows].
rundll32.exe user.exe,**ExitWindowsExec**
[Redémarrage de Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
où "n" signifie :
LOGOFF
FORCE
(peut être combiné -> 6 = 2+4 FORCE REBOOT
)
[1800 INFORMATION][1] fait gentiment remarquer dans les commentaires :
N'utilisez pas
rundll32.exe
dans ce but. Il s'attend à ce que la fonction que vous avez passée sur la ligne de commande ait une signature de méthode très spécifique - elle ne correspond pas à la signature de méthode deExitWindows
.
[Raymond CHEN][3] a écrit :
La signature de fonction requise pour les fonctions appelées par
rundll32.exe
est :
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Cela n'a pas empêché les gens d'utiliser
rundll32
pour appeler des fonctions aléatoires qui n'ont pas été conçues pour être appelées parrundll32
, commeuser32 LockWorkStation
ouuser32 ExitWindowsEx
.
(oups)
La signature réelle de la fonction ExitWindowsEx est la suivante :
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
Et pour que ce soit clair comme de l'eau de roche :
Rundll32
est un vestige de Windows 95, et il a été déprécié depuis au moins Windows Vista parce qu'il viole beaucoup de directives techniques modernes.
[1] : https://stackoverflow.com/users/3146/1800-information
[3] : http://blogs.msdn.com/b/oldnewthing/ [4] : http://blogs.msdn.com/b/oldnewthing/archive/2004/01/15/58973.aspx [5] : http://blogs.msdn.com/b/oldnewthing/archive/2011/09/09/10208136.aspx [6] : http://blogs.msdn.com/b/oldnewthing/archive/2013/01/04/10382242.aspx