Lệnh dòng lệnh (cmd) để khóa máy windows


64

Có cách nào để khóa máy Windows XP thông qua dòng lệnh không? Các shutdownlệnh không có một tùy chọn cho nó.


1
Từ phiên Remote Desktop, bạn sẽ có thể sử dụng <kbd> CTRL </ kbd> + <kbd> ALT </ kbd> + <kbd> END </ kbd> để hiển thị màn hình Windows Security (nơi bạn có thể khóa màn hình của mình máy trạm, khởi động lại, vv). Trong Vista trở lên, bạn cũng có thể chọn "Windows Security" từ Menu Bắt đầu. ! Mục menu Windows Security
bobbymcr

Câu trả lời:


95
rundll32.exe user32.dll,LockWorkStation

Tôi đã được cảnh báo rằng điều này không được khuyến nghị (trừ Microsoft ). Các cảnh báo cũng tập trung xung quanh họ hàng gần của lệnh, ExitWindowsEx (Tắt máy tính). Tôi chưa bao giờ có bất kỳ vấn đề nào với nó, nhưng YMMV .

Schlump : khỉ poodle có thể đúng. Truyền thuyết cảnh báo rằng mã là mạnh mẽ và nguy hiểm.
Nudar : Chúa ơi. Chúng tôi tốt hơn nên sử dụng nó chỉ ba hoặc bốn lần. Sáu, tối đa.
Nibbler : Nhưng ngay cả một lần sử dụng cũng có thể phá vỡ vũ trụ!
Nudar : hiểu rồi Hai hoặc ba lần.

( Nguồn )


3
Trong một thời gian, tôi có một trang web trên máy tính của mình, nếu được truy cập, sẽ gọi lệnh này (trên máy tính của tôi chứ không phải khách truy cập). Nó cơ bản là một khóa từ xa cho máy tính của tôi, vì khi tôi quên khóa nó khi tôi rời khỏi nhà và nhận ra rằng anh tôi đang đến thăm.
Cấp

2
Gọi các chức năng như thế này bằng cách sử dụng rundll32 thực sự không được khuyến khích. Để biết thêm thông tin, hãy xem blog.msdn.com/oldnewthing/archive/2004/01/15/58973.aspx - cuộn một chút xuống phần "rundll32".
grawity

Tôi chưa bao giờ gặp vấn đề với nó và nó vẫn hoạt động trong Windows 7 (người ta có thể cho rằng nó không đủ vấn đề để khắc phục). Dù bằng cách nào, đây vẫn là tùy chọn dòng lệnh duy nhất để khóa máy tính (không cài đặt chương trình để làm điều đó cho bạn).
Cấp

2
Nhưng tại sao nó không được khuyến khích?
endolith

1
Tôi nhận ra rằng đây là một câu hỏi cũ hơn, nhưng tôi chỉ thấy rằng Microsoft có một bài viết tài liệu về việc sử dụng rundll32, vì vậy đây dường như là phương pháp được đề xuất: docs.microsoft.com/en-us/powershell/scripting/getting- bắt đầu /
Lôi

11

Nếu bạn có quyền truy cập vào trình biên dịch C ++ của Visual Studio thì đây là nguồn (cực kỳ phức tạp):

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

Tôi đã biên dịch cái này với VS2015 bằng lệnh này: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

Lưu ý rằng trong Windows Vista / 7, bạn có thể sử dụng lệnh tsdisconđể ngắt kết nối phiên Remote Desktop / khóa máy trạm của bạn.

Nếu bạn sử dụng rundll32.exe user32.dll, LockWorkStationlệnh trong phiên Remote Desktop (trong Windows 7 / Vista), phiên sẽ tiếp tục, nhưng bạn sẽ chỉ thấy màn hình khóa trong cửa sổ Remote Desktop.


TSDISCON đã được giới thiệu trong Windows 2000 vừa được kiểm tra và nó cũng có sẵn trong Windows XP.
Jeroen Wiert Pluimers

2
Đừng sử dụng rundll32.exe với LockWorkStation , nó sẽ gây rối với ngăn xếp cuộc gọi và để lại mớ hỗn độn đó trong phiên của bạn.
Jeroen Wiert Pluimers

2

Vì không nên chạy LockWorkStation qua rundll32.exe, một giải pháp khác là sử dụng Wizmo . Chỉ cần chạy:

wizmo lock

2

Để chạy trên một trình lập lịch hoặc sau một vài phút bạn đã khởi động máy tính, bạn có thể sử dụng timeout /t 36000 /nobreak & rundll32.exe user32.dll,LockWorkStation tạo một .battệp đặt nó trong tác vụ theo lịch trình, đặt kích hoạt chạy ở chế độ chờ.

Bạn có thể thay đổi /t xxx. bạn cần đợi bao nhiêu

Nhờ Kevin, anh ta đã sử dụng lệnh để tắt máy, đó là: timeout /t 36000 /nobreak & shutdown /h /f


Chỉ để bạn không thất vọng nếu bạn không nhận được phản hồi, bạn nên biết rằng bạn đã trả lời một câu hỏi có câu trả lời được chấp nhận và đã 5 tuổi. Bạn chưa làm gì sai cả. Chỉ muốn bạn biết.
CharlieRB

1

Đây là lệnh bat làm việc cho Remote PC

@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

Tôi đặt máy tính của mình tự động đăng nhập, ngay lập tức chạy "rundll32.exe user32.dll, LockWorkStation" và sau đó bắt đầu tải ứng dụng (tệp .CMD duy nhất trong thư mục khởi động của tôi).

Hoạt động độc đáo. Khi tôi cần khởi động lại và tôi đang ở điểm dừng, tôi khởi động lại máy tính, nghỉ giải lao, v.v. và khi tôi quay lại, tôi mở khóa máy tính của mình. Tất cả các ứng dụng được tải.


-3

Bạn cũng có thể thực hiện việc này từ một máy cục bộ để khóa máy trạm từ xa bằng cách sử dụng đường dẫn UNC:

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

Truy cập bị từ chối với máy trạm Windows 7, nhưng hoạt động với Windows XP.


3
Điều này sẽ chỉ chạy nhị phân rundll32.exe trên máy trạm cục bộ của bạn từ đĩa của máy trạm từ xa, sau đó khóa máy trạm cục bộ của bạn.
hjd

1
Điều này sẽ khóa máy mà nó đang chạy
G-.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.