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.

Herms
źródło
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 )

Dotacja
ź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);
}
devstuff
źródło
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.

palswim
źródło
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
Laurent
źródło
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

Navid
źródło
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
serdar
źródło
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.

Tomek
źródło
-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.

Zdalny administrator
źródło
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-.
-6

W systemie Windows Server 2012 naciśnij: Win+L

Andrea
źródło
6
To nie jest polecenie wiersza polecenia .
Daniel Beck