Comando de línea de comandos (cmd) para bloquear una máquina Windows

64

¿Hay alguna manera de bloquear una máquina con Windows XP a través de la línea de comando? El shutdowncomando no tiene una opción para ello.

Herms
fuente
1
Desde una sesión de Escritorio remoto, debería poder usar <kbd> CTRL </kbd> + <kbd> ALT </kbd> + <kbd> END </kbd> para mostrar la pantalla de seguridad de Windows (donde puede bloquear su estación de trabajo, reinicio, etc.). En Vista o superior, también puede seleccionar "Seguridad de Windows" en el menú Inicio. !
Elemento de

Respuestas:

95
rundll32.exe user32.dll,LockWorkStation

Me han advertido que esto no se recomienda (excepto por Microsoft ). Las advertencias también se centran en el pariente cercano del comando, ExitWindowsEx (que apaga la computadora). Nunca he tenido ningún problema con eso, pero YMMV .

Schlump : El caniche mono puede estar en lo cierto. La leyenda advierte que el código es poderoso y peligroso.
Nudar : Dios mío. Será mejor que lo usemos solo tres o cuatro veces. Seis, máx.
Nibbler : ¡Pero incluso un solo uso podría destruir el universo!
Nudar : Lo tengo. Dos o tres veces

( Fuente )

Conceder
fuente
3
Durante un tiempo tuve una página web en mi computadora que, si la visitaba, invocaría este comando (en mi computadora, no a los visitantes). Básicamente era un bloqueo remoto para mi computadora, porque cuando olvido bloquearlo cuando salgo de la casa y me doy cuenta de que mi hermano está de visita.
Grant
2
No se recomienda llamar a funciones como esta usando rundll32. Para obtener más información, consulte blogs.msdn.com/oldnewthing/archive/2004/01/15/58973.aspx : desplácese un poco hacia abajo hasta la sección "rundll32".
Grawity
Nunca he tenido un problema con él, y todavía funciona en Windows 7 (se podría suponer que no fue lo suficientemente problemático como para solucionarlo). De cualquier manera, sigue siendo la única opción de línea de comandos para bloquear la computadora (salvo instalar un programa para que lo haga por usted).
Grant
2
¿ Pero por qué no se recomienda?
endolito
1
Reconozco que esta es una pregunta anterior, pero acabo de descubrir que Microsoft tiene un artículo que documenta el uso de rundll32, por lo que este parece ser el método recomendado: docs.microsoft.com/en-us/powershell/scripting/getting- comenzó / ...
Aakash Shah
11

Si tiene acceso al compilador C ++ de Visual Studio, aquí está la fuente (extremadamente complicada):

//
//LockWorkStation.cpp
//
//Locks the console.
//
//To compile (VC++ 2003, on one line):
//
//      cl.exe /W4 LockWorkStation.cpp /link /RELEASE /OPT:REF /OPT:NOWIN98
//                  /ENTRY:mainStartup /SUBSYSTEM:CONSOLE kernel32.lib
//

#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500)
    #undef _WIN32_WINNT
    #define _WIN32_WINNT 0x0500 
#endif
#include <windows.h> 

void mainStartup(void)
{
    LockWorkStation(); 
    ExitProcess(0);
}
devstuff
fuente
Compilé esto con VS2015 usando este comando:cmd /s /c ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 & cl.exe /W4 LockWorkStation.cpp /link /RELEASE /ENTRY:mainStartup /SUBSYSTEM:CONSOLE kernel32.lib user32.lib"
Kevin Smyth
6

Tenga en cuenta que en Windows Vista / 7, puede usar el comando tsdisconpara desconectar una sesión de Escritorio remoto / bloquear su estación de trabajo.

Si usa el rundll32.exe user32.dll, LockWorkStationcomando en una sesión de Escritorio remoto (en Windows 7 / Vista), la sesión continuará, pero verá la pantalla de bloqueo en la ventana de Escritorio remoto.

palswim
fuente
TSDISCON se ha introducido en Windows 2000 recién verificado, y también está disponible en Windows XP.
Jeroen Wiert Pluimers
2
No use rundll32.exe con LockWorkStation , se enredará con la pila de llamadas y dejará ese desorden en su sesión.
Jeroen Wiert Pluimers
2

Como no se recomienda ejecutar LockWorkStation a través de rundll32.exe, otra solución es usar Wizmo . Solo corre:

wizmo lock
Laurent
fuente
2

Para ejecutar en un programador o después de algunos minutos dejo la computadora, puede usar timeout /t 36000 /nobreak & rundll32.exe user32.dll,LockWorkStation crear un .batarchivo, ponerlo en la tarea programada, poner el disparador en inactivo.

Se puede cambiar /t xxx. cuanto necesitas esperar

Gracias a Kevin, utilizó el comando para apagar, eso es: timeout /t 36000 /nobreak & shutdown /h /f

Navid
fuente
Para que no te decepciones si no recibes una respuesta, debes saber que has respondido una pregunta que tiene una respuesta aceptada y tiene 5 años. No has hecho nada malo. Sólo quería que supieras.
CharlieRB
1

Aquí está el comando bat de trabajo para PC remota

@echo off
COLOR 3E
@echo Lock Remote PC
SET /P PC=ıp or Host Name: 
\\%PC%\c$\Windows\System32\rundll32.exe user32.dll,LockWorkStation
serdar
fuente
1

Configuré mi computadora para iniciar sesión automáticamente, inmediatamente ejecuté "rundll32.exe user32.dll, LockWorkStation" y luego comencé a cargar aplicaciones (archivo único .CMD en mi carpeta de inicio).

Funciona bien Cuando necesito reiniciar y estoy en un punto de interrupción, reinicio la computadora, hago una pausa, etc. y cuando regreso, desbloqueo mi computadora. Todas las aplicaciones cargadas.

Tom
fuente
-3

También puede hacer esto desde una máquina local para bloquear una estación de trabajo remota utilizando una ruta UNC:

\\computername\c$\Windows\System32\rundll32.exe user32.dll,LockWorkStation

Obtener acceso denegado con estaciones de trabajo con Windows 7, pero funciona con Windows XP.

Administrador remoto
fuente
3
Esto solo ejecutará el binario rundll32.exe en su estación de trabajo local desde el disco de la estación de trabajo remota y luego bloqueará su estación de trabajo local.
hjd
1
Esto bloquea la máquina en la que se está ejecutando
G-.
-6

En Windows Server 2012, presione: Win+L

Andrea
fuente
66
Este no es un comando de línea de comandos .
Daniel Beck