63

Есть ли способ заблокировать компьютер с Windows XP через командную строку? Команда shutdown не имеет опции для этого.

9 ответов9

89
rundll32.exe user32.dll,LockWorkStation

Меня предупредили, что это не рекомендуется (кроме Microsoft). Предупреждения также сосредоточены вокруг близкого родственника команды, ExitWindowsEx (который выключает компьютер). У меня никогда не было проблем с этим, но YMMV.

Шлумп: пудель-обезьяна может быть права. Легенда предупреждает, что код мощный и опасный.
Нудар: Боже мой. Нам лучше использовать его только три или четыре раза. Шесть, макс.
Нибблер: Но даже одно использование может разрушить вселенную!
Нудар: Понял. Два или три раза.

(Источник)

10

Если у вас есть доступ к компилятору Visual Studio C++, вот (чрезвычайно сложный) источник:

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

Обратите внимание, что в Windows Vista/7 вы можете использовать команду tsdiscon для отключения сеанса удаленного рабочего стола /блокировки вашей рабочей станции.

Если вы используете rundll32.exe user32.dll, LockWorkStation команду LockWorkStation в сеансе удаленного рабочего стола (в Windows 7/Vista), сеанс будет продолжен, но вы увидите только экран блокировки в окне удаленного рабочего стола.

2

Для запуска в планировщике или после того, как через несколько минут вы покинули компьютер, вы можете использовать timeout /t 36000 /nobreak & rundll32.exe user32.dll,LockWorkStation создать файл .bat поместить его в запланированное задание, перевести триггер в режим ожидания.

Вы можете изменить /t xxx . сколько вам нужно ждать.

Благодаря Кевину он использовал команду для выключения, вот так:timeout /t 36000 /nobreak & shutdown /h /f

2

Поскольку не рекомендуется запускать LockWorkStation через rundll32.exe, другим решением является использование Wizmo. Просто беги:

wizmo lock
1

Я установил на компьютере автоматический вход в систему, сразу же запустил «rundll32.exe user32.dll, LockWorkStation», а затем начал загружать приложения (одиночные.CMD файл в моей папке автозагрузки).

Работает красиво. Когда мне нужно перезагрузиться, и я нахожусь в критическом состоянии, я перезагружаю компьютер, делаю перерыв и т.д., А когда возвращаюсь, я разблокирую свой компьютер. Приложения все загружены.

1

Вот рабочая команда bat для удаленного ПК

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

Вы также можете сделать это с локального компьютера, чтобы заблокировать удаленную рабочую станцию, используя путь UNC:

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

Получение доступа запрещено с рабочих станций Windows 7, но работает с Windows XP.

-6

На Windows Server 2012 нажмите: Win + L

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .