¿Cómo apago, reinicio o cierro la sesión de Windows a través de un archivo bat?

He estado usando Conexión a Escritorio remoto para entrar en una estación de trabajo. Pero en este entorno, no puedo usar las opciones de energía en el menú Inicio. Necesito una forma alternativa de apagar o reiniciar.

¿Cómo controlo el estado de energía de mi computadora a través de la línea de comando?

preguntado Oct 02 '08, 11:10

10 Respuestas

Las formas más habituales de utilizar shutdown comando son:

  • shutdown -s - Apaga.
  • shutdown -r - Reinicia.
  • shutdown -l - Cierra la sesión.
  • shutdown -h - Hiberna.

    Nota: Existe un error común en el que los usuarios piensan -h significa "ayuda" (lo que hace con cualquier otro programa de línea de comandos ... excepto shutdown.exe, donde significa "hibernar"). Luego corren shutdown -h y apagan accidentalmente sus computadoras. Cuidado con eso.

  • shutdown -i - "Modo interactivo". En lugar de realizar una acción, muestra un cuadro de diálogo GUI.

  • shutdown -a - Anula un comando de apagado anterior.

Los comandos anteriores se pueden combinar con estas opciones adicionales:

  • -f - Obliga a los programas a salir. Evita que el proceso de apagado se atasque.
  • -t <seconds> - Establece el tiempo hasta el apagado. Usar -t 0 para apagar inmediatamente.
  • -c <message> - Agrega un mensaje de apagado. El mensaje terminará en el Registro de eventos.
  • -y - Fuerza una respuesta "sí" a todas las consultas de apagado.

    Nota: Esta opción no está documentada en ninguna documentación oficial. Fue descubierto por estos usuarios de StackOverflow.


Quiero asegurarme de que también se mencionen otras respuestas realmente buenas junto con esta. Aquí no están en ningún orden en particular.

respondido 11 nov., 18:05

Lea sobre el uso de -f (fuerza) en la siguiente respuesta. Dice el tipo que no lo hizo y ahora tiene una computadora atascada al apagarse en el otro lado del planeta durante el fin de semana (: - pasx

+1 solo que usé /<switch> en lugar de -<switch>. La sección de ayuda también usa /. - leyendas2k

Mi experiencia: el uso de la opción -s (apagado) en Escritorio remoto (como menciona el OP) solo termina el escritorio remoto pero deja la máquina remota intacta. - Heri

Utilizo "-r" para máquinas remotas. Entonces se reiniciará y no necesitará intervención manual. - granadaCoder

Si está en una máquina remota, es posible que también desee agregar el -f opción para forzar el reinicio. De lo contrario, su sesión puede cerrarse y una aplicación obstinada puede bloquear el sistema. Para forzar un reinicio inmediato: shutdown -t 0 -r -f. Para una opción más amigable de "darles algo de tiempo", puede usar esto: shutdown -t 30 -r. -f está implícito en el tiempo de espera. (de la edición propuesta por Mateusz Konieczny) - Ole VV

Si está en una máquina remota, es posible que también desee agregar la opción -f a fuerza el reinicio. De lo contrario, su sesión puede cerrarse y una aplicación obstinada puede bloquear el sistema.

Lo uso cada vez que quiero forzar un reinicio inmediato:

shutdown -t 0 -r -f

Para una opción más amigable de "darles algo de tiempo", puede usar esto:

shutdown -t 30 -r

Como puede ver en los comentarios, la -f está implícita en el tiempo de espera.

Brutus 2006 es una utilidad que proporciona una GUI para estas opciones.

Respondido el 21 de diciembre de 14 a las 23:12

Al leer la ayuda para el apagado en Windows 8.1, veo: "Si el período de tiempo de espera es mayor que 0, el parámetro / f está implícito". Y como el tiempo de espera predeterminado es de 30 segundos, creo que es preferible dar algo de tiempo para el apagado limpio y luego el apagado forzado ocurre después del tiempo de espera. - Zitrax

Ese es un buen punto. Creo que cuando escribí esto, el sistema operativo que estaba usando era Windows XP. Veo que el comentario "/ f está implícito" también está en Windows 7. Modifiqué el ejemplo en consecuencia. - jose styons

Por defecto tienen 30 segundos. Yo uso para inmediato: apagado / r / t 0 y amigable: apagado / r - zampino

Nadie ha mencionado -m opción de apagado remoto:

shutdown -r -f -m \\machinename

También:

  • Programas de -r El parámetro provoca un reinicio (que suele ser lo que desea en una máquina remota, ya que iniciarlo físicamente puede ser difícil).
  • Programas de -f La opción de parámetro fuerza el reinicio.
  • Debe tener los privilegios adecuados para apagar la máquina remota, por supuesto.

Respondido el 06 de enero de 09 a las 14:01

¿Puede el nombre de la máquina ser una dirección IP? Es decir, ¿puedes hacer esto a través de Internet? - mcmillab

Si puede acceder a la máquina a través de \\IP.AD.DR.ESS (es decir, los puertos necesarios están abiertos y usted tiene los permisos necesarios), entonces sí, esto debería funcionar a través de Internet. - Timoteo Zorn

Primero probé con -r solo y no funcionó porque quería un apagado remoto. Funcionó con shutdown -r -m. -f no era necesario. - Dchris

Respuesta original: Octubre de 2008

También tienes todo el "rundll32.exe shell32.dll" serie:

(ver actualización a continuación)

  • rundll32.exe user.exe,**ExitWindows** [Apagado rápido de Windows]
  • rundll32.exe user.exe,**ExitWindowsExec** [Reiniciar Windows]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

sin que importe n significa:

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

(se puede combinar -> 6 = 2 + 4 FORCE REBOOT)


Actualización de abril de 2015 (más de 6 años después):

1800 INFORMACIÓN amablemente señala en los comentarios:

No use rundll32.exe para este propósito. Espera que la función que pasó en la línea de comando tenga una firma de método muy específica; no coincide con la firma del método de ExitWindows.

RAYMOND CHEN escribió:

La firma de función requerida para funciones llamadas por rundll32.exe es:

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

Eso no ha impedido que la gente use rundll32 para llamar a funciones aleatorias que no fueron diseñadas para ser llamadas por rundll32del ADN, tales como los user32 LockWorkStation or user32 ExitWindowsEx.

(Uy)

La firma de función real para ExitWindowsEx es:

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

Y para que quede muy claro:

Rundll32 es un remanente de Windows 95, y ha sido obsoleto desde al menos Windows Vista porque viola muchas pautas de ingeniería modernas.

Respondido 26 Abr '20, 19:04

¿Cuál es la diferencia entre apagado y apagado? - asdfg

@Asdfg hoy? ninguno. Para NT4 y versiones anteriores, la placa base no siempre admitía el apagado, solo el apagado (las ventanas estaban completamente cerradas, pero la PC todavía tenía energía eléctrica). Solo el apagado (si el hardware lo admitía en ese momento) cerró las ventanas y Corta la energía eléctrica. Hoy, tanto el apagado como el apagado hacen eso. - VonC

No utilice rundll32.exe para este propósito. Espera que la función que pasó en la línea de comando tenga una firma de método muy específica; no coincide con la firma de método de ExitWindows. - 1800 INFORMACIÓN

@ 1800INFORMATION muy buen punto. He reescrito la respuesta para dejar en claro que esto es no una opción válida. - VonC

Sin embargo, para ser justos, realmente no importa qué tipo de pérdida de memoria o corrupción de pila esté causando si apaga inmediatamente la PC. - relaciones públicas

Otro pequeño consejo: cuando sigo la ruta del archivo por lotes, me gusta poder cancelarlo en caso de que lo ejecute accidentalmente. Entonces, el archivo por lotes invoca el apagado, pero luego lo deja en el símbolo del sistema.

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

Además, dado que tiene un temporizador, obtienes la misma emoción que cuando cazando en The Oregon Trail.

Respondido el 10 de junio de 11 a las 04:06

puede poner una pausa en el archivo de baño y luego cancelar el comando, por lo que la secuencia de aborto sería cualquier tecla - rsk82

@ rsk82, poder salirse con la suya escribiendo cualquier cosa también fue una limitación desafortunada de mi copia TRS-80 de Oregon Trail, pero francamente, siempre lo consideré una trampa y mi hermano se enfurecía cada vez que lo hacía. Solo digo: ¿por qué querrías enfurecer a mi hermano? - Gavin

Cuando se conecta de forma remota a una máquina (el objetivo es Windows XP de todos modos; no estoy seguro sobre el objetivo Windows Vista), aunque cierre en el menú de inicio se reemplaza por Desconectar sesión o algo así, debería haber uno llamado 'Seguridad de Windows' que también hace lo mismo que Ctrl + otro + Fin como lo señaló Owen.

contestado el 28 de mayo de 17 a las 23:05

Solía ​​usar ese método pero ya no funciona, es la línea de comando. - user742864

También tengo un gadget que tiene botones para apagar, reiniciar, hibernar, bloquear que funciona en RDP. - user742864

Probablemente sepa esto, pero por si acaso: es mucho más fácil escribir shutdown -r (o cualquier comando que desee) en el cuadro "Ejecutar" y presione enter.

Ahorra dejar archivos por lotes por todas partes.

Respondido el 12 de junio de 18 a las 23:06

sí ... solo me gusta tener el doble clic allí ... para eso también es el archivo -r bat; o) - Keng

cuidado de no ponerlo en programas-> inicio :) - decano bastante

aw .. y se obtendrá un comportamiento curioso si el código se coloca en un archivo shutdown.bat. ¡Intentalo! :) .... - Brethlosze

Escribiría esto en Bloc de notas or WordPad para un comando de cierre de sesión básico:

@echo off
shutdown -l

Esto es básicamente lo mismo que hacer clic en iniciar y cerrar sesión manualmente, pero es un poco más rápido si tiene el archivo por lotes listo.

contestado el 28 de mayo de 17 a las 23:05

Llego tarde a la fiesta, pero todavía no he visto esta respuesta. Cuando no desee utilizar un archivo por lotes o escriba el comando. Puede simplemente establecer el foco en el escritorio y luego usar otro + F4.

Windows le preguntará qué desea hacer, seleccione apagar o reiniciar.

Para capturas de pantalla e incluso un video, consulte: https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp

Respondido 15 ago 18, 15:08

@Keng, leyendo el problema real "No puedo usar la función de apagado / reinicio en el menú Inicio" Me parece que quieres saber cómo hacerlo. La línea de comandos es una solución, el teclado es otra. Podría ayudar a otros usuarios que se encuentran con esta pregunta y solo quieren una solución fácil para apagar o reiniciar. - msoft

Algunas adiciones al cierre y rundll32.exe shell32.dll,SHExitWindowsEx n comandos.

Cierre de sesión - le permite cerrar la sesión de usuario por sessionid o nombre de sesión

PSShutdown - requiere una descarga desde Windows sysinternals.

bootim.exe - cierre de windows 10/8 iu

cambiar / chglogon - evita que nuevos usuarios inicien sesión o tomen otra sesión

SESIÓN NETA / BORRAR - finaliza una sesión para el usuario

wusa / forcerestart / quiet - administrador de actualizaciones de Windows, pero también puede reiniciar la máquina

tsdiscon - te desconecta

rdpinit - cierra la sesión, aunque no puedo encontrar ninguna documentación en este momento

respondido 06 nov., 20:16

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.