Question Comment puis-je arrêter - redémarrer - déconnecter Windows via un fichier bat?


J'ai utilisé Connexion Bureau à distance pour entrer dans un poste de travail, mais je ne suis pas en mesure d'utiliser la fonction d'arrêt / redémarrage dans le menu Démarrer en faisant cela.

J'ai mis quelques options vraiment utiles dans la réponse ci-dessous.

Remarque: Je voulais m'assurer que de très bonnes réponses étaient également mentionnées ainsi que les miennes.

Et ici, ils ne sont pas dans un ordre particulier.


618
2017-10-02 13:37


origine


Réponses:


Voici comment faire les fonctions d'arrêt via un fichier batch:

  • shutdown -r - redémarre
  • shutdown -s - shutsdown
  • shutdown -l - se déconnecter
  • shutdown -t xx - où xx est le nombre de secondes à attendre jusqu'à l'arrêt / redémarrage / déconnexion
  • shutdown -i - vous donne une boîte de dialogue pour remplir quelle fonction vous voulez utiliser
  • shutdown -a - annule la commande d'arrêt précédente .... très pratique!
  • shutdown -h - hiberner. Erreur facile - ce n'est pas pour de l'aide
  • shutdown -y - Supprime toutes les invites à l'arrêt (Aide non disponible dans la documentation)

Options additionelles:

  • -f - Forcer l'action sélectionnée
  • -t <seconds> - Réglez l'heure à l'arrêt. Utilisation -t 0 pour l'instant"
  • -c <message> - Ajoute un message à l'arrêt

1112
2017-10-02 13:37



Si vous êtes sur une machine distante, vous pouvez également ajouter l'option -f à Obliger le redémarrage. Sinon, votre session peut se fermer et une application têtue 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 "donnez-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 timeout.

Brutus 2006 est un utilitaire qui fournit une interface graphique pour ces options.


369
2017-10-02 13:45



Personne n'a mentionné -m option pour l'arrêt à distance:

shutdown -r -f -m \\machinename

Aussi:

  • le -r Le paramètre provoque un redémarrage (ce qui est généralement ce que vous voulez sur une machine distante, car le démarrage physique peut être difficile).
  • le -f L'option de paramètre force le redémarrage.
  • Vous devez avoir les privilèges appropriés pour éteindre la machine distante, bien sûr.

79
2018-01-06 14:51



Réponse originale: Oct. 2008

Vous avez aussi tous les "rundll32.exe shell32.dll" série:

(voir la mise à jour ci-dessous)

  • rundll32.exe user.exe,**ExitWindows** [Arrêt rapide de Windows]
  • rundll32.exe user.exe,**ExitWindowsExec** [Redémarrer Windows]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

n signifie:

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

(peut être combiné -> 6 = 2 + 4 FORCE REBOOT)


Mise à jour Avril 2015 (6+ ans plus tard):

1800 INFORMATIONS souligne aimablement dans les commentaires:

Ne pas utiliser rundll32.exe dans ce but. Il s'attend à ce que la fonction que vous avez transmise sur la ligne de commande possède une signature de méthode très spécifique - elle ne correspond pas à la signature de méthode de ExitWindows.

Raymond CHEN a écrit:

La signature de fonction requise pour les fonctions appelées par rundll32.exeest:

void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
       LPSTR pszCmdLine, int nCmdShow);

Cela n'a pas empêché les gens d'utiliser rundll32 appeler des fonctions aléatoires qui n'ont pas été conçues pour être appelé par rundll32, comme user32 LockWorkStation ou user32 ExitWindowsEx.

(Oops)

La signature de la fonction réelle pour ExitWindowsEx est:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

Et pour le rendre limpide:

Rundll32 est un reste de Windows 95, et il est obsolète depuis au moins Windows Vista, car il viole un grand nombre de directives d'ingénierie modernes.


38
2017-10-02 13:56



Une autre petite astuce: quand j'utilise la route du fichier batch, j'aime pouvoir l'annuler si je la lance accidentellement. Ainsi, le fichier batch appelle l'arrêt mais vous laisse à l'invite de commande après.

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

De plus, comme il s'agit d'une minuterie, vous obtenez à peu près le même frisson que lorsque vous chasse à l'Oregon Trail.


9
2018-06-10 03:12



Lorsque vous êtes déconnecté sur une machine (la cible est Windows XP de toute façon, je ne suis pas sûr de la cible Windows Vista), bien que Fermer sur le menu de démarrage est remplacé par Séance de déconnexion ou quelque chose comme ça, il devrait y avoir un appelé «Windows Security» qui fait aussi la même chose que Ctrl + Alt + Fin comme indiqué par Owen.


7
2017-10-02 13:57



Vous êtes probablement au courant de cela, mais juste au cas où: il est beaucoup plus facile de taper shutdown -r (ou n'importe quelle commande que vous aimez) dans la boîte "Exécuter" et appuyez sur Entrée.

Enregistre les fichiers batch qui traînent partout.


7
2017-10-02 14:01