Comando da linha de comandos (cmd) para bloquear uma máquina Windows

64

Existe uma maneira de bloquear uma máquina Windows XP através da linha de comando? O shutdowncomando não tem uma opção para ele.

Herms
fonte
11
Em uma sessão da Área de Trabalho Remota, você poderá usar <kbd> CTRL </kbd> + <kbd> ALT </kbd> + <kbd> END </kbd> para mostrar a tela de Segurança do Windows (onde você pode bloquear seu computador). estação de trabalho, reinicialização etc.). No Vista ou acima, você também pode selecionar "Segurança do Windows" no menu Iniciar. ! Item de menu Segurança do Windows
bobbymcr

Respostas:

95
rundll32.exe user32.dll,LockWorkStation

Fui avisado de que isso não é recomendado (exceto pela Microsoft ). Os avisos também estão centrados no parente próximo do comando, ExitWindowsEx (que desliga o computador). Eu nunca tive problemas com isso, mas YMMV .

Schlump : O poodle-monkey pode estar certo. A lenda alerta que o código é poderoso e perigoso.
Nudar : Meu Deus. É melhor usá-lo apenas três ou quatro vezes. Seis, máx.
Nibbler : Mas mesmo um único uso pode destruir o universo!
Nudar : Entendi. Duas ou três vezes.

( Fonte )

Conceder
fonte
3
Por um tempo, tive uma página da Web no meu computador que, se visitada, chamaria esse comando (no meu computador, não nos visitantes). Era basicamente uma trava remota para o meu computador, pois quando esqueço de trancá-la quando saio de casa e percebo que meu irmão está visitando.
Grant
2
Chamar funções como esta usando rundll32 não é realmente recomendado. Para obter mais informações, consulte blogs.msdn.com/oldnewthing/archive/2004/01/15/58973.aspx - role um pouco até a seção "rundll32".
grawity
Eu nunca tive um problema com ele, e ele ainda funciona no Windows 7 (pode-se presumir que não foi problemático o suficiente para corrigir). De qualquer forma, ainda é a única opção de linha de comando para bloquear o computador (menos que instalar um programa para fazer isso por você).
Grant
2
Mas por que não é recomendado?
endolith 8/06/12
11
Reconheço que essa é uma pergunta mais antiga, mas acabei de descobrir que a Microsoft possui um artigo que documenta o uso do rundll32, portanto esse parece ser o método recomendado: docs.microsoft.com/en-us/powershell/scripting/getting- iniciado /…
Aakash Shah
11

Se você tiver acesso ao compilador C ++ do Visual Studio, aqui está a fonte (extremamente 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
fonte
Eu compilei isso com o 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

Observe que no Windows Vista / 7, você pode usar o comando tsdisconpara desconectar uma sessão da Área de Trabalho Remota / bloquear sua estação de trabalho.

Se você usar o rundll32.exe user32.dll, LockWorkStationcomando em uma sessão da Área de Trabalho Remota (no Windows 7 / Vista), a sessão continuará, mas você verá a tela de bloqueio na janela da Área de Trabalho Remota.

palswim
fonte
O TSDISCON foi introduzido no Windows 2000 apenas marcado e também está disponível no Windows XP.
Jeroen Wiert Pluimers
2
Não use o rundll32.exe com o LockWorkStation , ele mexerá com a pilha de chamadas e deixará essa bagunça na sua sessão.
Jeroen Wiert Pluimers
2

Como não é recomendável executar o LockWorkStation via rundll32.exe, outra solução é usar o Wizmo . Apenas corra:

wizmo lock
Laurent
fonte
2

Para executar em um agendador ou após alguns minutos que você deixou o computador, você pode timeout /t 36000 /nobreak & rundll32.exe user32.dll,LockWorkStation criar um .batarquivo, colocá-lo na tarefa agendada, colocar o gatilho em modo ocioso.

Você pode mudar /t xxx. quanto você precisa esperar.

Graças a Kevin, ele usou o comando para desligar, isso é: timeout /t 36000 /nobreak & shutdown /h /f

Navid
fonte
Para não ficar desapontado se não receber uma resposta, saiba que você respondeu a uma pergunta que tem uma resposta aceita e tem 5 anos. Você não fez nada de errado. Só queria que você soubesse.
21415 CharlieRB
1

Aqui está o comando bat trabalhando para PC remoto

@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
fonte
1

Defino meu computador para efetuar logon automaticamente, execute imediatamente "rundll32.exe user32.dll, LockWorkStation" e inicie o carregamento de aplicativos (único arquivo .CMD na minha pasta de inicialização).

Funciona bem. Quando preciso reiniciar e estou em um ponto de interrupção, reinicio o computador, faço uma pausa, etc. e, ao voltar, desbloqueio o computador. Todos os aplicativos carregados.

Tom
fonte
-3

Você também pode fazer isso em uma máquina local para bloquear uma estação de trabalho remota usando um caminho UNC:

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

Obter acesso negado nas estações de trabalho do Windows 7, mas funciona com o Windows XP.

Admin Remoto
fonte
3
Isso executará apenas o binário rundll32.exe na estação de trabalho local a partir do disco da estação de trabalho remota e, em seguida, trava a estação de trabalho local.
Hjd 17/09/12
11
Isso bloqueia a máquina em que está sendo executada
G-.
-6

No Server 2012 de imprensa do Windows: Win+L

Andrea
fonte
6
Este não é um comando de linha de comando .
Daniel Beck