Trong bài viết này, chúng tôi sẽ hướng dẫn cách vô hiệu hóa có chọn lọc UAC cho một ứng dụng cụ thể mà không cần tắt hoàn toàn dịch vụ Kiểm soát tài khoản người dùng. Xem xét một số cách để tắt UAC cho một ứng dụng bằng RunAsInvoker cờ tương thích.
Kiểm soát tài khoản người dùng yêu cầu người dùng xác nhận bất kỳ hành động nào yêu cầu đặc quyền của quản trị viên. Đây là một cơ chế khá hiệu quả để bảo vệ Windows khỏi một số mối đe dọa (virus, trojan, sâu, rootkit, v.v.). Một số người dùng thấy các cửa sổ UAC bật lên gây phiền nhiễu và họ muốn tắt tính năng bảo mật này, mặc dù Microsoft và các chuyên gia bảo mật khuyên bạn không nên làm điều này.
Cờ RunAsInvoker cho phép bạn chạy ứng dụng với một điểm đánh dấu được kế thừa từ quy trình mẹ. Thao tác này hủy quá trình xử lý tệp kê khai ứng dụng và việc khám phá các quy trình của trình cài đặt. Tham số này không cung cấp đặc quyền của quản trị viên mà chỉ bỏ qua lời nhắc UAC.
Ví dụ:chúng tôi sẽ vô hiệu hóa lời nhắc Kiểm soát Tài khoản Người dùng cho trình chỉnh sửa sổ đăng ký ( regedit.exe ). Mặc dù thực tế là tài khoản của tôi có đặc quyền của quản trị viên cục bộ, khi tôi chạy tiện ích, một yêu cầu UAC vẫn xuất hiện để xác nhận việc khởi chạy.
Nếu chương trình yêu cầu quyền của quản trị viên vì nó thay đổi cài đặt hệ thống hoặc tệp, thì các đặc quyền của người dùng trong ứng dụng sẽ không tăng lên sau khi tắt UAC. Chương trình sẽ vẫn chạy theo quyền của người dùng hiện tại và nếu bạn không có quyền thực hiện những thay đổi này, chương trình sẽ không thể thực hiện chúng. Cũng có một số ít ứng dụng chỉ chạy ở chế độ “Với tư cách là quản trị viên”, bỏ qua cờ tương thích RunAsInvoker.
Nội dung:
- Tắt UAC cho một chương trình bằng Bộ công cụ tương thích với ứng dụng
- Bật Cờ ứng dụng RunAsInvoker qua Sổ đăng ký
- Bat ch tệp để Chạy ứng dụng ở Chế độ RunAsInvoker
Tắt UAC cho một chương trình bằng Bộ công cụ tương thích với ứng dụng
Chúng tôi cần cài đặt Bộ công cụ tương thích ứng dụng, là một phần của Windows ADK. Tải xuống phiên bản Windows ADK mới nhất dành cho Windows 10 tại đây.
Chạy tệp adksetup.exe và trong khi cài đặt (chương trình cần truy cập Internet), chỉ chọn Công cụ tương thích ứng dụng mục .
Công cụ tương thích ứng dụng của Microsoft là một bộ công cụ miễn phí để khắc phục sự cố tương thích với ứng dụng khi chuyển sang phiên bản Windows mới.
Có hai phiên bản của Quản trị viên tương thích ứng dụng trong hệ thống - 32-bit và 64-bit. Chạy phiên bản Quản trị viên tương thích ứng dụng tùy thuộc vào bitness của ứng dụng mà bạn muốn tắt yêu cầu UAC.
Chạy Quản trị viên tương thích (32-bit) với các đặc quyền của quản trị viên (!) . Trong Cơ sở dữ liệu tùy chỉnh , nhấp chuột phải vào Cơ sở dữ liệu mới và chọn Tạo mới -> Sửa ứng dụng .
Trong cửa sổ sau, nhập tên ứng dụng (regedit), tên nhà cung cấp (Microsoft) và đường dẫn đến tệp thực thi (C:\ Windows \ System32 \ regedit.exe).
Bỏ qua cửa sổ tiếp theo (Chế độ tương thích) của trình hướng dẫn cấu hình bằng cách nhấn Tiếp theo . Trong Các bản sửa lỗi về khả năng tương thích cửa sổ, chọn tùy chọn RunAsInvoker .
Bạn có thể đảm bảo rằng ứng dụng có thể chạy mà không cần UAC bằng cách nhấn vào nút Chạy thử nghiệm nút.
Trong Thông tin phù hợp , bạn có thể chỉ định các thông số ứng dụng cần được kiểm tra (phiên bản, tổng kiểm tra, kích thước, v.v.). Tôi đã chọn các tùy chọn COMPANY_NAME, PRODUCT_NAME và ORIGINAL_FILENAME để tránh việc tạo lại tệp bản vá tương thích sau bản cập nhật Windows 10 tiếp theo.
Mẹo . Để bảo vệ chống lại việc giả mạo tệp thi hành bởi tin tặc, bạn có thể yêu cầu kiểm tra bổ sung khi chạy tệp (ví dụ:xác minh CHECKSUM, FILE_VERSION hoặc FILE_SIZE, v.v.). Cần lưu ý rằng các kiểm tra bổ sung sẽ làm chậm quá trình khởi động ứng dụng.
Nhấp vào Kết thúc và chỉ định tên của tệp mà gói sửa lỗi tương thích phải được lưu vào, e. g., regedit.sdb . Tệp này sẽ chứa các hướng dẫn để khởi động ứng dụng với các tùy chọn tương thích được chỉ định.
Bây giờ bạn chỉ phải áp dụng gói sửa lỗi tương thích cho ứng dụng của chúng tôi. Bạn có thể làm điều đó từ bảng điều khiển Quản trị viên tương thích (chọn Cài đặt trong menu) hoặc từ dấu nhắc lệnh.
Để làm điều đó, hãy chạy dấu nhắc lệnh nâng cao và thực hiện lệnh sau:
sdbinst -q c:\ps\regedit.sdb
Nếu bạn làm đúng, sẽ xuất hiện thông báo cài đặt gói thành công.
Installation of regedit complete.
Sau khi gói đã được cài đặt, bản ghi tương ứng sẽ xuất hiện trong danh sách các chương trình Windows đã cài đặt (Chương trình và Tính năng).
Hãy thử ngay bây giờ để chạy ứng dụng trong phiên người dùng mà không có quyền của quản trị viên cục bộ. Bây giờ nó sẽ bắt đầu mà không có yêu cầu UAC.
Bây giờ hãy kiểm tra các đặc quyền cho ứng dụng đang chạy. Chạy Trình quản lý tác vụ, chuyển đến tab Quy trình, thêm cột "Nâng cao". Đảm bảo rằng quá trình regedit.exe được bắt đầu từ người dùng ở chế độ không đặc quyền ( Nâng cao =Không ).
Trong quy trình biên tập sổ đăng ký này, người dùng chỉ có thể chỉnh sửa các tham số và khóa đăng ký của riêng mình. Nhưng nếu bạn cố gắng chỉnh sửa / tạo nội dung nào đó trong khóa HKLM của hệ thống, một lỗi sẽ xuất hiện:“Bạn không có quyền cần thiết”.
Sau đó, bản sửa lỗi tương thích này có thể được phân phối cho tất cả các máy tính người dùng bằng Chính sách Nhóm. Do đó, bạn có thể tắt kiểm tra UAC cho các ứng dụng cụ thể trên nhiều máy tính trong miền Active Directory.
Để loại bỏ bản sửa lỗi tương thích, hãy chạy lệnh:
sdbinst –u c:\ps\regedit.sdb
Bật Cờ ứng dụng RunAsInvoker qua Sổ đăng ký
Bạn có thể bật cờ tương thích RUNASINVOKER trong Windows 10 / 8.1 / 7 thông qua sổ đăng ký. Cờ tương thích của ứng dụng có thể được đặt cho một hoặc cho tất cả người dùng máy tính.
Ví dụ:đối với ứng dụng regedit, bạn cần tạo một tham số đăng ký mới ( REG_SZ ) trong khóa đăng ký sau HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Lớp:
- Tên giá trị: C:\ windows \ regedit.exe
- Dữ liệu giá trị: RunAsInvoker
Nếu bạn muốn bật chế độ tương thích ứng dụng cho tất cả người dùng máy tính cục bộ, bạn cần tạo tham số này trong khóa đăng ký khác:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers.
Trong miền, bạn có thể nhập / triển khai các cài đặt đăng ký này cho người dùng thông qua GPO.
Bat ch tệp để Chạy ứng dụng ở Chế độ RunAsInvoker
Có một cách khác để chạy chương trình mà không có đặc quyền của quản trị viên và bỏ qua lời nhắc UAC (xem bài viết).
Chỉ cần tạo tệp .bat với mã sau:
Set ApplicationPath="C:\windows\regedit.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"
Khi tệp dơi này đang được chạy dưới một người dùng thông thường, ứng dụng được chỉ định sẽ bắt đầu mà không có lời nhắc UAC.
Vì vậy, chúng tôi đã xem xét cách tắt UAC cho một chương trình cụ thể mà không tắt hoàn toàn Kiểm soát tài khoản người dùng. Điều này sẽ cho phép bạn chạy các chương trình Windows dưới quyền quản trị viên mà không có lời nhắc UAC và không cần nhập mật khẩu quản trị viên.