Wiersz polecenia (cmd) do zablokowania komputera z systemem Windows


64

Czy istnieje sposób na zablokowanie komputera z systemem Windows XP za pomocą wiersza polecenia? shutdownKomenda nie ma opcji dla niego.


1
W sesji pulpitu zdalnego powinieneś móc użyć <kbd> CTRL </kbd> + <kbd> ALT </kbd> + <kbd> END </kbd>, aby wyświetlić ekran Zabezpieczeń Windows (gdzie możesz zablokować stacja robocza, restart itp.). W systemie Vista lub nowszym możesz również wybrać „Zabezpieczenia systemu Windows” z menu Start. ! Element menu Zabezpieczenia systemu Windows
bobbymcr

Odpowiedzi:


95
rundll32.exe user32.dll,LockWorkStation

Ostrzeżono mnie, że nie jest to zalecane (z wyjątkiem firmy Microsoft ). Ostrzeżenia są również wyśrodkowane wokół bliskiego krewnego polecenia, ExitWindowsEx (który wyłącza komputer). Nigdy nie miałem z tym żadnych problemów, ale YMMV .

Schlump : pudel-małpa może mieć rację. Legenda ostrzega, że ​​kod jest potężny i niebezpieczny.
Nudar : Mój Boże. Lepiej używajmy go tylko trzy lub cztery razy. Sześć, maks.
Nibbler : Ale nawet pojedyncze użycie może zniszczyć wszechświat!
Nudar : Rozumiem. Parękroć.

( Źródło )


3
Przez pewien czas miałem na swoim komputerze stronę internetową, która po odwiedzeniu wywołałaby to polecenie (na moim komputerze, a nie odwiedzających). Była to w zasadzie zdalna blokada dla mojego komputera, ponieważ kiedy zapomnę ją zamknąć, kiedy wychodzę z domu i zdaję sobie sprawę, że mój brat odwiedza.
Grant

2
Wywołanie takich funkcji za pomocą rundll32 nie jest naprawdę zalecane. Aby uzyskać więcej informacji, zobacz blogs.msdn.com/oldnewthing/archive/2004/01/15/58973.aspx - przewiń nieco w dół do sekcji „rundll32”.
grawity

Nigdy nie miałem z tym problemu i nadal działa w systemie Windows 7 (można założyć, że to nie było wystarczająco problematyczne do naprawienia). Tak czy inaczej, nadal jest to jedyna opcja wiersza poleceń blokująca komputer (bez instalowania programu, który zrobi to za Ciebie).
Grant

2
Ale dlaczego nie jest to zalecane?
endolith

1
Rozumiem, że to starsze pytanie, ale właśnie odkryłem, że Microsoft ma artykuł dokumentujący użycie rundll32, więc wydaje się, że jest to zalecana metoda: docs.microsoft.com/en-us/powershell/scripting/getting- rozpoczęty /…
Aakash Shah

11

Jeśli masz dostęp do kompilatora C ++ Visual Studio, oto (bardzo skomplikowane) źródło:

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

Skompilowałem to z VS2015 przy użyciu tego polecenia: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

Zauważ, że w Windows Vista / 7 możesz użyć tego polecenia, tsdisconaby rozłączyć sesję Pulpitu zdalnego / zablokować stację roboczą.

Jeśli użyjesz rundll32.exe user32.dll, LockWorkStationpolecenia w sesji pulpitu zdalnego (w systemie Windows 7 / Vista), sesja będzie kontynuowana, ale zobaczysz tylko ekran blokady w oknie pulpitu zdalnego.


TSDISCON został wprowadzony w Windows 2000 właśnie sprawdzony i jest również dostępny w Windows XP.
Jeroen Wiert Pluimers

2
Nie używaj rundll32.exe z LockWorkStation , to zadziała ze stosem wywołań i pozostawi ten bałagan w sesji.
Jeroen Wiert Pluimers

2

Ponieważ nie jest zalecane uruchamianie LockWorkStation przez rundll32.exe, innym rozwiązaniem jest użycie Wizmo . Po prostu biegnij:

wizmo lock

2

Aby uruchomić program planujący lub po kilku minutach odejścia z komputera, możesz użyć timeout /t 36000 /nobreak & rundll32.exe user32.dll,LockWorkStation utworzyć .batplik, umieścić go w zaplanowanym zadaniu, uruchomić wyzwalacz w trybie bezczynności.

Można zmienić /t xxx. ile trzeba czekać.

Dzięki Kevinowi użył polecenia do zamknięcia, czyli: timeout /t 36000 /nobreak & shutdown /h /f


Abyś nie był rozczarowany, jeśli nie otrzymasz odpowiedzi, powinieneś wiedzieć, że odpowiedziałeś na pytanie, które ma zaakceptowaną odpowiedź i ma 5 lat. Nie zrobiłeś nic złego. Chciałem tylko, żebyś wiedział.
CharlieRB,

1

Oto działające polecenie bat dla zdalnego komputera

@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

Ustawiam komputer na automatyczne logowanie, natychmiast uruchamiam „rundll32.exe user32.dll, LockWorkStation”, a następnie zaczynam ładować aplikacje (pojedynczy plik .CMD w moim folderze startowym).

Działa ładnie. Kiedy muszę zrestartować komputer i jestem w punkcie krytycznym, ponownie uruchamiam komputer, robię sobie przerwę itp. Po powrocie odblokowuję komputer. Wszystkie aplikacje zostały załadowane.


-3

Możesz to również zrobić z komputera lokalnego, aby zablokować zdalną stację roboczą, używając ścieżki UNC:

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

Odmowa dostępu dla stacji roboczych z systemem Windows 7, ale działa z systemem Windows XP.


3
Spowoduje to uruchomienie pliku binarnego rundll32.exe na lokalnej stacji roboczej z dysku zdalnej stacji roboczej, a następnie zablokowanie lokalnej stacji roboczej.
hjd

1
To blokuje maszynę, na której działa
G-.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.