Đây là một phương pháp đơn giản tôi đã sử dụng trên Windows 7 đến Windows 10. Về cơ bản, tôi chỉ cần sử dụng lệnh "IF EXIST" để kiểm tra thư mục Windows \ System32 \ WDI \ LogFiles. Thư mục WDI tồn tại trên mọi bản cài đặt Windows từ ít nhất 7 trở đi và nó yêu cầu đặc quyền quản trị viên để truy cập. Thư mục WDI luôn có thư mục LogFiles bên trong nó. Vì vậy, chạy "IF EXIST" trên thư mục WDI \ LogFiles sẽ trả về true nếu chạy với tư cách quản trị viên và false nếu không chạy với tư cách quản trị viên. Điều này có thể được sử dụng trong một tệp hàng loạt để kiểm tra mức đặc quyền và phân nhánh cho bất kỳ lệnh nào bạn muốn dựa trên kết quả đó.
Đây là một đoạn mã ví dụ ngắn gọn:
IF EXIST %SYSTEMROOT%\SYSTEM32\WDI\LOGFILES GOTO GOTADMIN
(Commands for running with normal privileges)
:GOTADMIN
(Commands for running with admin privileges)
Hãy nhớ rằng phương pháp này giả định các quyền bảo mật mặc định chưa được sửa đổi trên thư mục WDI (điều này khó có thể xảy ra trong hầu hết các trường hợp, nhưng vui lòng xem cảnh báo # 2 bên dưới). Ngay cả trong trường hợp đó, nó chỉ đơn giản là sửa đổi mã để kiểm tra một tệp / thư mục chung khác yêu cầu quyền truy cập quản trị (System32 \ config \ SAM có thể là một ứng cử viên thay thế tốt) hoặc bạn thậm chí có thể tạo riêng của mình cho điều đó mục đích.
Tuy nhiên, có hai lưu ý về phương pháp này:
Vô hiệu hóa UAC có thể sẽ phá vỡ thực tế đơn giản rằng mọi thứ sẽ được chạy với tư cách quản trị viên.
Việc cố gắng mở thư mục WDI trong Windows Explorer và sau đó nhấp vào "Tiếp tục" khi được nhắc sẽ thêm quyền truy cập vĩnh viễn cho tài khoản người dùng đó, do đó phá vỡ phương pháp của tôi. Nếu điều này xảy ra, nó có thể được khắc phục bằng cách xóa tài khoản người dùng khỏi quyền bảo mật thư mục WDI. Nếu vì bất kỳ lý do gì mà người dùng PHẢI có thể truy cập vào thư mục WDI bằng Windows Explorer, thì bạn phải sửa đổi mã để kiểm tra một thư mục khác (như đã đề cập ở trên, việc tạo riêng của bạn cho mục đích này có thể là một lựa chọn tốt) .
Vì vậy, phải thừa nhận rằng phương pháp của tôi không hoàn hảo vì nó có thể bị hỏng, nhưng đó là một phương pháp tương đối nhanh, dễ thực hiện, tương thích như nhau với tất cả các phiên bản Windows 7, 8 và 10 và miễn là tôi lưu ý đến những lưu ý đã đề cập. 100% hiệu quả đối với tôi.
echo > somefile
vào một thư mục yêu cầu quyền quản trị viên. nó sẽ tạo ra một tệp như một tác động phụ, nhưng bạn có thể kiểm tra các xung đột và tạo một tên tệp duy nhất như một giải pháp thay thế.