Comando da riga di comando (cmd) per bloccare un computer Windows


64

C'è un modo per bloccare un computer Windows XP tramite la riga di comando? Il shutdowncomando non ha un'opzione per questo.


1
Da una sessione di Desktop remoto, dovresti essere in grado di utilizzare <kbd> CTRL </kbd> + <kbd> ALT </kbd> + <kbd> END </kbd> per mostrare la schermata Sicurezza di Windows (dove puoi bloccare il tuo workstation, riavvio, ecc.). In Vista o versioni successive, puoi anche selezionare "Protezione di Windows" dal menu Start. ! Voce di menu Sicurezza di Windows
bobbymcr

Risposte:


95
rundll32.exe user32.dll,LockWorkStation

Sono stato avvisato che questo non è raccomandato (tranne da Microsoft ). Gli avvisi sono anche incentrati sul parente stretto del comando, ExitWindowsEx (che spegne il computer). Non ho mai avuto problemi con esso, ma YMMV .

Schlump : La scimmia barboncino potrebbe avere ragione. La leggenda avverte che il codice è potente e pericoloso.
Nudar : Mio Dio. Meglio usarlo solo tre o quattro volte. Sei, max.
Nibbler : Ma anche un solo uso potrebbe distruggere l'universo!
Nudar : Capito. Due o tre volte.

( Fonte )


3
Per un po 'ho avuto una pagina web sul mio computer che, se visitata, avrebbe invocato questo comando (sul mio computer, non i visitatori). Fondamentalmente era un blocco remoto per il mio computer, perché quando dimentico di bloccarlo quando esco di casa e mi rendo conto che mio fratello è in visita.
Concedi l'

2
Chiamare funzioni come questa usando rundll32 non è davvero raccomandato. Per ulteriori informazioni, consultare blogs.msdn.com/oldnewthing/archive/2004/01/15/58973.aspx - scorrere un po 'verso il basso fino alla sezione "rundll32".
gravità

Non ho mai avuto problemi con esso, e funziona ancora in Windows 7 (si potrebbe presumere che non sia stato abbastanza problematico da risolvere). Ad ogni modo, è ancora l'unica opzione da riga di comando per bloccare il computer (a parte l'installazione di un programma per farlo per te).
Concedi il

2
Ma perché non è raccomandato?
endolith

1
Riconosco che questa è una domanda più vecchia, ma ho appena scoperto che Microsoft ha un articolo che documenta l'uso di rundll32, quindi questo sembra essere il metodo raccomandato: docs.microsoft.com/en-us/powershell/scripting/getting- iniziato / ...
Aakash Shah,

11

Se hai accesso al compilatore C ++ di Visual Studio, ecco la fonte (estremamente complicata):

//
//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);
}

Ho compilato questo con VS2015 usando questo 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 il

6

Si noti che in Windows Vista / 7 è possibile utilizzare il comando tsdisconper disconnettere una sessione di Desktop remoto / bloccare la workstation.

Se si utilizza il rundll32.exe user32.dll, LockWorkStationcomando in una sessione di Desktop remoto (in Windows 7 / Vista), la sessione continuerà, ma verrà visualizzata la schermata di blocco nella finestra Desktop remoto.


TSDISCON è stato introdotto in Windows 2000 appena verificato ed è disponibile anche in Windows XP.
Jeroen Wiert Pluimers,

2
Non utilizzare rundll32.exe con LockWorkStation , rovinerà lo stack di chiamate e lascerà quel disordine nella sessione.
Jeroen Wiert Pluimers,

2

Poiché non è consigliabile eseguire LockWorkStation tramite rundll32.exe, un'altra soluzione è utilizzare Wizmo . Corri:

wizmo lock

2

Per l'esecuzione su uno scheduler o dopo alcuni minuti che hai lasciato il computer, puoi utilizzare timeout /t 36000 /nobreak & rundll32.exe user32.dll,LockWorkStation creare un .batfile per metterlo nell'attività pianificata, mettere il trigger inattivo.

È possibile modificare /t xxx. quanto devi aspettare.

Grazie a Kevin, ha usato il comando per l'arresto, che è: timeout /t 36000 /nobreak & shutdown /h /f


Solo così non sei deluso se non ricevi una risposta, dovresti sapere di aver risposto a una domanda che ha una risposta accettata e ha 5 anni. Non hai fatto niente di male. Volevo solo che lo sapessi.
CharlieRB,

1

Ecco il comando bat funzionante per 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

1

Ho impostato il mio computer per accedere automaticamente, eseguire immediatamente "rundll32.exe user32.dll, LockWorkStation" e quindi iniziare a caricare le app (singolo file .CMD nella mia cartella di avvio).

Funziona bene. Quando ho bisogno di riavviare e sono a un punto di rottura, riavvio il computer, vado in pausa, ecc. E quando torno, sblocco il mio computer. App tutte caricate.


-3

Puoi anche farlo da un computer locale per bloccare una workstation remota utilizzando un percorso UNC:

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

Accesso negato con le workstation di Windows 7, ma funziona con Windows XP.


3
Questo eseguirà semplicemente il file binario rundll32.exe sulla workstation locale dal disco della workstation remota, quindi bloccherà la workstation locale.
hjd

1
Questo blocca la macchina su cui è in esecuzione
G-.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.