Khái niệm cơ bản về leo thang đặc quyền trong Windows. Nâng cao quyền mà không yêu cầu mật khẩu quản trị viên cho một ứng dụng cụ thể Tất cả quản trị viên làm việc ở chế độ phê duyệt của quản trị viên

UAC(Kiểm soát tài khoản người dùng) là công nghệ kiểm soát tài khoản xuất hiện lần đầu tiên vào năm Windows Vista và lớn hơn. Công nghệ này ngăn các chương trình thực hiện các hành động yêu cầu quyền quản trị viên. Khi chương trình thực hiện các hành động như vậy, công việc của nó sẽ bị tạm dừng và người dùng sẽ thấy một cửa sổ yêu cầu trên màn hình được bảo vệ (do đó không thể lập trình nhấn nút OK). Ví dụ: nếu chương trình của bạn cần thay đổi khóa đăng ký HKEY_LOCAL_MACHINE, thì cô ấy sẽ cần quyền quản trị viên.
Để giải quyết vấn đề này, bạn có thể sử dụng việc triển khai tệp kê khai trong dự án mà hệ điều hành sẽ đọc và tự động xác định các tham số cần thiết để khởi chạy.
Hãy xem xét việc đưa một tệp kê khai vào ứng dụng " Biểu mẫu Windows" Để thực hiện việc này, hãy mở Visual Studio (phiên bản 2012 được sử dụng trong ví dụ này) và tạo một dự án " Biểu mẫu Windows" Mở " Người khám phá giải pháp(Solution Explorer), cung cấp chế độ xem có tổ chức về các dự án và tệp của chúng, hãy chuyển đến menu Xem» - « Người khám phá giải pháp" Nhấp chuột phải vào " Người khám phá giải pháp" theo tên dự án và chọn từ menu ngữ cảnh," Thêm vào» - « Tạo phần tử...».

Một cửa sổ mới sẽ mở ra " Thêm một phần tử mới -..." tìm phần tử Visual C# có tên " Tệp kê khai ứng dụng", chọn nó và nhấp vào" Thêm vào».

TRONG " Người khám phá giải pháp"Bạn sẽ có một mục mới có tên của tệp kê khai. Nó cũng sẽ được tự động mở trong trình soạn thảo mã.

Để định cấu hình các quyền cần thiết để chạy ứng dụng, bạn cần xác định mức độ bảo mật và mô tả phần tử “ được yêu cầuCấp thực thi" Phần tử này không có phần tử con và có các thuộc tính sau:
1) Mức độ- Yêu cầu. Đặt mức độ bảo mật mà ứng dụng yêu cầu. Các giá trị sau có sẵn cho thuộc tính này:
  • asInvoker- ứng dụng bắt đầu với các quyền của tiến trình gốc. Điều này có nghĩa là nếu bạn chạy một chương trình từ một ứng dụng đang chạy với quyền quản trị viên thì chương trình đó sẽ tự động có các quyền tương tự. Chế độ này được Microsoft khuyên dùng trong hầu hết các trường hợp. Những thứ kia. Đây là những chương trình không yêu cầu quyền quản trị viên;
  • cao nhất có sẵn— ứng dụng được khởi chạy với các quyền cao hơn người dùng hiện tại có. Regedit.exe, Mmc.exe được ra mắt với các quyền này;
  • yêu cầuQuản trị viên- yêu cầu đầy đủ quyền quản trị viên. Những thứ kia. cần thiết cho các ứng dụng không thể chạy nếu không có quyền quản trị viên.

Cài đặt ứng dụng" Nhấp một lần" chỉ có thể thực hiện được với giá trị "asInvoker". Bất kỳ giá trị nào khác sẽ không cho phép cài đặt.

2) uiTruy cập- Không bắt buộc. Cho biết liệu ứng dụng có yêu cầu quyền truy cập vào các thành phần giao diện người dùng được bảo vệ để triển khai các tính năng trợ năng hay không. Giá trị có sẵn " ĐÚNG VẬY" Và " SAI", giá trị mặc định là" SAI". Nghĩa " ĐÚNG VẬY" chỉ được phép có các ứng dụng đã được ký và được khởi chạy từ thư mục "\Program Files\" và "\windows\system32\". Thông thường, điều này là không cần thiết.
Để chương trình yêu cầu nâng quyền lên cấp Quản trị viên khi khởi động, hãy thay thế thuộc tính “ Mức độ" giá trị mặc định " asInvoker" TRÊN " yêu cầuQuản trị viên».

Xây dựng giải pháp bằng cách nhấn nút " F6" Nếu bạn đã làm mọi thứ chính xác, thì trong hệ điều hành Windows Vista trở lên, biểu tượng cái khiên sẽ xuất hiện trên biểu tượng tệp thực thi của chương trình, cho biết rằng chương trình này yêu cầu nâng cao quyền.

Để kiểm tra quyền của ứng dụng, bạn có thể sử dụng danh sách bên dưới.
chuỗi s = new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator) ? "Quản trị viên" : "Người dùng thông thường"; Nếu bạn có ứng dụng console thì nguyên tắc hoạt động cũng giống như vậy.

Phần bài viết mô tả chi tiết nguyên lý hoạt động của User Account Control. Trong phần này chúng ta sẽ nói về việc thiết lập UAC trong trường hợp máy tính của bạn hoạt động độc lập, tức là nó không phải là một phần của miền Active Directory. Để định cấu hình Kiểm soát tài khoản người dùng, hãy sử dụng tính năng Chính sách bảo mật cục bộ, có thể tìm thấy trong Trình chỉnh sửa đối tượng chính sách nhóm cục bộ.

Có 10 cài đặt Chính sách nhóm chịu trách nhiệm định cấu hình Kiểm soát tài khoản người dùng. Để thay đổi cài đặt chính sách, bạn cần mở phần đính vào "Trình chỉnh sửa chính sách nhóm cục bộ" nút Cấu hình máy tính\Cấu hình Windows\Cài đặt bảo mật\Chính sách cục bộ\Cài đặt bảo mật. Bài viết này cũng sẽ chỉ cho bạn cách định cấu hình từng cài đặt chính sách bằng sổ đăng ký hệ thống. Bảng sau hiển thị các giá trị mặc định cho từng cài đặt chính sách.

Cài đặt chính sách nhóm Kiểm soát tài khoản người dùng mặc định:

Cài đặt chính sách nhómGiá trị mặc định
Kiểm soát tài khoản người dùng: Bật Chế độ phê duyệt của quản trị viênBao gồm
Kiểm soát tài khoản người dùng: Phát hiện cài đặt ứng dụng và lời nhắc nâng caoBao gồm
Kiểm soát tài khoản người dùng: Chuyển sang máy tính để bàn an toàn khi được nhắc nâng caoBao gồm
Kiểm soát tài khoản người dùng: Hành vi nhắc nhở về độ cao dành cho quản trị viên ở chế độ phê duyệt của quản trị viênNhắc sự đồng ý đối với dữ liệu nhị phân không phải của Windows
Kiểm soát tài khoản người dùng: Hành vi nhắc nhở nâng cao dành cho người dùng chuẩnYêu cầu thông tin xác thực
Kiểm soát tài khoản người dùng: Chỉ nâng cao đặc quyền cho các ứng dụng UIAccess được cài đặt ở một vị trí an toànBao gồm
Kiểm soát tài khoản người dùng: Chỉ nâng cao đặc quyền cho các tệp thực thi đã được ký và xác minhTàn tật
Kiểm soát tài khoản người dùng: nếu việc ghi vào tệp hoặc sổ đăng ký không thành công, hãy ảo hóa vị trí của người dùngBao gồm
Kiểm soát tài khoản người dùng: Cho phép ứng dụng UIAccess yêu cầu độ cao mà không cần sử dụng máy tính để bàn an toànTàn tật
Kiểm soát tài khoản người dùng: Sử dụng Chế độ phê duyệt của quản trị viên cho tài khoản quản trị viên tích hợpTàn tật

Cài đặt Chính sách nhóm liên quan đến Kiểm soát tài khoản người dùng (UAC) được thảo luận chi tiết bên dưới:

Tất cả quản trị viên làm việc ở chế độ phê duyệt của quản trị viên

Cài đặt chính sách này xác định đặc điểm của tất cả các chính sách Kiểm soát tài khoản người dùng cho máy tính. Cài đặt này xác định xem tài khoản quản trị viên có chạy ở “chế độ được quản trị viên phê duyệt hay không”, nghĩa là liệu các hộp thoại có hiển thị yêu cầu nâng cao đặc quyền hay không. Nói một cách đại khái, việc tắt cài đặt này sẽ vô hiệu hóa hoàn toàn chức năng Kiểm soát tài khoản người dùng. Nếu bạn thay đổi cài đặt chính sách này, bạn phải khởi động lại máy tính. Giá trị mặc định được kích hoạt.

Các giá trị tham số có thể có:

  • Bao gồm. Chế độ phê duyệt của quản trị viên được bật để cho phép tài khoản quản trị viên tích hợp và tất cả người dùng khác là thành viên của nhóm "Quản trị viên", làm việc ở chế độ phê duyệt của quản trị viên.
  • Tàn tật. Chế độ phê duyệt của quản trị viên và tất cả cài đặt chính sách Kiểm soát tài khoản người dùng được liên kết sẽ bị tắt.

;Tắt "EnableLUA"=dword:00000000

Phát hiện cài đặt ứng dụng và nhắc nhở nâng cao

Cài đặt này xác định các đặc điểm phát hiện cài đặt ứng dụng cho máy tính bằng cách kiểm tra xem các chương trình được sử dụng để triển khai ứng dụng có được ký hay không. Theo mặc định, nếu người dùng là thành viên của nhóm làm việc thì nó sẽ được bật.

Các giá trị tham số có thể có:

  • Đã bật (mặc định cho trang chủ). Nếu trình cài đặt ứng dụng phát hiện thấy cần có đặc quyền nâng cao, người dùng sẽ được nhắc nhập tên người dùng và mật khẩu cho tài khoản quản trị viên. Nếu người dùng nhập thông tin xác thực chính xác, hoạt động sẽ tiếp tục với các quyền thích hợp. Loại yêu cầu phụ thuộc vào nhóm người dùng thuộc về.
  • Đã tắt (mặc định của tổ chức). Khi bạn chọn cài đặt này, việc phát hiện trình cài đặt ứng dụng sẽ không nhắc bạn nâng cao. Thông thường, cài đặt này được sử dụng trong các tổ chức có máy tính và người dùng là một phần của miền và sử dụng các công nghệ cài đặt được ủy quyền (Cài đặt phần mềm chính sách nhóm - GPSI) để triển khai ứng dụng. Theo đó, không cần phải phát hiện trình cài đặt.

Cài đặt chính sách hiện tại bằng sổ đăng ký:

;Tắt "EnableInstallerDetection"=dword:00000000

Chuyển sang màn hình an toàn khi được nhắc nâng cao

Cài đặt chính sách này xác định xem lời nhắc về độ cao được hiển thị trên màn hình tương tác của người dùng hay trên màn hình an toàn khi bắt đầu lời nhắc UAC. Giá trị mặc định được kích hoạt. Nếu bạn thay đổi cài đặt chính sách này, bạn phải khởi động lại máy tính.

Các giá trị tham số có thể có:

  • Bao gồm. Tất cả các yêu cầu nâng cao đều được hiển thị trên màn hình an toàn, bất kể cài đặt chính sách hành vi nhanh chóng dành cho quản trị viên và người dùng chuẩn.
  • Tàn tật. Tất cả các yêu cầu nâng cao quyền được hiển thị trên màn hình tương tác của người dùng.

Cài đặt chính sách hiện tại bằng sổ đăng ký:

;Tắt "PromptOnSecureDesktop"=dword:00000000

Hành vi của lời nhắc nâng cao dành cho quản trị viên trong chế độ phê duyệt của quản trị viên

Cài đặt hiện tại cho phép bạn xác định hành động của người dùng là thành viên của nhóm "Quản trị viên" khi thực hiện một thao tác yêu cầu nâng cao quyền. Giá trị mặc định được đặt "Yêu cầu sự đồng ý cho các tệp nhị phân của bên thứ ba (Không phải Windows)".

Các giá trị tham số có thể có:

  • Khuyến mãi không cần yêu cầu. Cho phép các tài khoản đặc quyền thực hiện thao tác yêu cầu nâng cao mà không cần có sự đồng ý hoặc nhập thông tin xác thực. Bạn chỉ nên sử dụng tùy chọn này trong những môi trường có hạn chế tối đa về người dùng. Khi bạn chọn cài đặt này, quyền của người dùng sẽ giống với tài khoản quản trị viên tích hợp.
  • . Đối với bất kỳ thao tác nào yêu cầu độ cao, màn hình bảo mật sẽ nhắc bạn nhập tên người dùng và mật khẩu gốc. Nếu thông tin đăng nhập chính xác được nhập, hoạt động sẽ tiếp tục với quyền người dùng tối đa hiện có.
  • Yêu cầu sự đồng ý trên máy tính để bàn an toàn. Đối với bất kỳ thao tác nào yêu cầu độ cao, màn hình an toàn sẽ nhắc bạn chọn: "Cho phép" hoặc "Cấm". Khi chọn tùy chọn "Cho phép", hoạt động sẽ tiếp tục với các quyền tối đa của người dùng hiện có.
  • Yêu cầu thông tin xác thực. Đối với bất kỳ thao tác nào yêu cầu độ cao, bạn sẽ được nhắc nhập tên người dùng và mật khẩu cho tài khoản quản trị viên. Nếu bạn nhập thông tin xác thực chính xác, thao tác sẽ tiếp tục với các đặc quyền nâng cao.
  • Yêu cầu sự đồng ý. Khi chọn tùy chọn này, đối với bất kỳ thao tác nào yêu cầu nâng cao quyền, người dùng sẽ được nhắc chọn một nút: "Cho phép" hoặc "Cấm". Khi bạn nhấn nút "Cho phép"
  • Yêu cầu sự đồng ý cho các tệp nhị phân của bên thứ ba (Không phải Windows). Khi bạn chọn tùy chọn này, lời nhắc lựa chọn sẽ được hiển thị trên màn hình bảo mật: "Cho phép" hoặc "Cấm", trong trường hợp hoạt động của ứng dụng bên thứ ba (không phải của Microsoft) yêu cầu nâng cao quyền. Chỉ với một cú nhấp chuột "Cho phép", hoạt động sẽ tiếp tục với các đặc quyền tối đa hiện có của người dùng.

Cài đặt chính sách hiện tại bằng sổ đăng ký:

;Quảng cáo mà không có lời nhắc "ConsentPromptBehaviorAdmin"=dword:00000000 ;Nhắc về thông tin xác thực trên màn hình bảo mật; "ConsentPromptBehaviorAdmin"=dword:00000001 ;Nhắc xin sự đồng ý trên màn hình bảo mật;"ConsentPromptBehaviorAdmin"=dword:00000002 ;Nhắc thông tin xác thực;"ConsentPro mptBehaviorAdmin" =dword:00000003 ;Yêu cầu đồng ý;"ConsentPromptBehaviorAdmin"=dword:00000004 ;Yêu cầu đồng ý đối với dữ liệu nhị phân không phải của Windows ;"ConsentPromptBehaviorAdmin"=dword:00000005

Hành vi nhắc nhở độ cao cho người dùng chuẩn

Cài đặt chính sách này xác định các hành động được thực hiện khi người dùng chuẩn tương tác với các ứng dụng yêu cầu nâng cao. Giá trị mặc định - "Nhắc thông tin xác thực trên máy tính để bàn an toàn".

Các giá trị tham số có thể có:

  • Yêu cầu thông tin xác thực. Sử dụng tùy chọn này, người dùng chuẩn sẽ được nhắc chọn tài khoản quản trị viên và nhập mật khẩu để thực hiện các hành động tiếp theo. Hoạt động sẽ chỉ tiếp tục nếu thông tin đăng nhập được nhập chính xác.
  • Tự động từ chối yêu cầu độ cao. Nếu bạn chọn tùy chọn này, người dùng chuẩn sẽ thấy thông báo lỗi từ chối truy cập khi thực hiện thao tác yêu cầu đặc quyền nâng cao. Các tổ chức có máy tính để bàn được người dùng thông thường sử dụng có thể chọn cài đặt chính sách này để giảm số lượng cuộc gọi hỗ trợ.
  • Nhắc nhập thông tin đăng nhập trên máy tính để bàn an toàn. Bằng cách chọn tùy chọn này, người dùng chuẩn sẽ được nhắc chọn tài khoản quản trị viên và nhập mật khẩu để chỉ thực hiện các hành động tiếp theo trên màn hình an toàn. Hoạt động sẽ chỉ tiếp tục nếu thông tin đăng nhập được nhập chính xác.

Cài đặt chính sách hiện tại bằng sổ đăng ký:

;Tự động từ chối yêu cầu độ cao "ConsentPromptBehaviorUser"=dword:00000000 ;Nhắc thông tin xác thực trên màn hình an toàn "ConsentPromptBehaviorUser"=dword:00000001 ; Nhắc nhập thông tin xác thực "ConsentPromptBehaviorUser"=dword:00000003

Chỉ nâng cao quyền cho các ứng dụng UIAccess khi được cài đặt ở những vị trí an toàn

Cài đặt chính sách hiện tại cho phép bạn kiểm soát quyền vị trí của các ứng dụng yêu cầu thực thi ở mức toàn vẹn được xác định bởi thuộc tính Giao diện người dùng truy cập (UIAccess) trong một vị trí hệ thống tệp an toàn. Theo mặc định, cài đặt này được bật và đối với các ứng dụng có thể truy cập, thuộc tính UIAccess trong tệp kê khai được đặt thành True để kiểm soát cửa sổ yêu cầu leo ​​thang đặc quyền. Nếu ứng dụng được đặt thành false, nghĩa là nếu thuộc tính bị bỏ qua hoặc không có bảng kê khai nào cho hợp ngữ, ứng dụng sẽ không thể truy cập vào giao diện người dùng được bảo vệ. Chỉ các thư mục sau đây được coi là an toàn:

…\Program Files\, bao gồm các thư mục con

…\Windows\system32\

...\Program Files (x86)\, bao gồm các thư mục con cho phiên bản Windows 64-bit

Các giá trị tham số có thể có:

  • Bao gồm. Ứng dụng sẽ chỉ chạy với mức toàn vẹn UIAccess nếu nó nằm trong thư mục bảo mật trên hệ thống tệp.
  • Tàn tật. Ứng dụng sẽ chạy với mức toàn vẹn UIAccess ngay cả khi nó không nằm trong thư mục hệ thống tệp bảo mật.

Cài đặt chính sách hiện tại bằng sổ đăng ký:

;Tắt "EnableSecureUIAPaths"=dword:00000000

Nâng cao đặc quyền chỉ dành cho các tệp thực thi đã được ký và xác minh

Cài đặt Chính sách nhóm kiểm soát tài khoản người dùng này cho phép bạn xác định xem có xác thực chữ ký của các ứng dụng Cơ sở hạ tầng khóa công khai (PKI) tương tác yêu cầu nâng cao đặc quyền hay không. Mục đích của PKI là xác định chính sách cấp chứng chỉ số, cấp và thu hồi chúng cũng như lưu trữ thông tin cần thiết cho việc xác minh tính chính xác của chứng chỉ sau này. Các ứng dụng hỗ trợ PKI bao gồm: email bảo mật, giao thức thanh toán, séc điện tử, trao đổi thông tin điện tử, bảo mật dữ liệu qua mạng IP, biểu mẫu điện tử và tài liệu được ký điện tử. Nếu tính năng kiểm tra này được bật, các chương trình sẽ bắt đầu xác minh đường dẫn chứng chỉ. Giá trị mặc định của cài đặt này là Tắt.

Các giá trị tham số có thể có:

  • Bao gồm. Việc kiểm tra đường dẫn cho chứng chỉ PKI bị bắt buộc trước khi tệp được thực thi. Cài đặt này chủ yếu được sử dụng trong các tổ chức có miền nếu quản trị viên đã đặt chứng chỉ PKI vào cửa hàng của nhà xuất bản đáng tin cậy.
  • Tàn tật. Khi tùy chọn này được đặt, Kiểm soát tài khoản người dùng sẽ không bắt đầu kiểm tra chuỗi xác minh chứng chỉ PKI trước khi cho phép thực thi một tệp thực thi nhất định.

Cài đặt chính sách hiện tại bằng sổ đăng ký:

;Vô hiệu hóa "Xác thựcAdminCodeSignatures"=dword:00000000

Nếu việc ghi vào tệp hoặc sổ đăng ký không thành công, hãy ảo hóa vị trí của người dùng

Cài đặt này kiểm soát xem lỗi ghi ứng dụng có được chuyển hướng đến các vị trí cụ thể trong hệ thống tệp và sổ đăng ký hay không. Khi cài đặt này được bật, đối với các ứng dụng cũ cố đọc hoặc ghi thông tin bằng cách sử dụng các vùng được bảo vệ của hệ thống, Kiểm soát Tài khoản Người dùng sẽ ảo hóa hệ thống tệp và sổ đăng ký. Nhờ cài đặt này, UAC cho phép bạn giảm thiểu mối nguy hiểm khi các ứng dụng cũ chạy với tư cách quản trị viên và ghi dữ liệu vào thư mục %ProgramFiles%, %Windir% trong khi thực thi; %Windir%\system32 hoặc vào khóa đăng ký hệ thống HKLM\Software\. Giá trị mặc định được kích hoạt.

Các giá trị tham số có thể có:

  • Bao gồm. Lỗi ghi ứng dụng được chuyển hướng trong thời gian chạy đến các vị trí do người dùng xác định trong hệ thống tệp và sổ đăng ký.
  • Tàn tật. Các ứng dụng ghi dữ liệu vào các vị trí an toàn sẽ bị lỗi và không thực thi được.

Cài đặt chính sách hiện tại bằng sổ đăng ký:

;Tắt "Bật ảo hóa"=dword:00000000

Cho phép ứng dụng UIAccess yêu cầu độ cao mà không cần sử dụng màn hình bảo mật

Cài đặt chính sách mới này, được giới thiệu trong Windows 7 và Windows Server 2008 R2, kiểm soát xem các ứng dụng UIAccess có thể tự động vô hiệu hóa màn hình an toàn cho các yêu cầu nâng cao được người dùng chuẩn sử dụng hay không. Giá trị mặc định bị vô hiệu hóa.

Các giá trị tham số có thể có:

  • Bao gồm. Khi bạn chọn cài đặt này, các chương trình UIAccess, bao gồm Hỗ trợ từ xa của Windows, sẽ tự động tắt Màn hình an toàn cho các yêu cầu nâng cao. Nếu cài đặt chính sách "Kiểm soát tài khoản người dùng: Chuyển sang màn hình an toàn khi được nhắc nâng cao" được bật, lời nhắc sẽ xuất hiện trên màn hình tương tác của người dùng thay vì trên màn hình an toàn.
  • Tàn tật. Khi tùy chọn này được chọn, chỉ người dùng màn hình tương tác mới có thể tắt màn hình bảo mật hoặc bằng cách tắt cài đặt chính sách "Kiểm soát tài khoản người dùng: Chuyển sang màn hình an toàn khi được nhắc nâng cao".

Cài đặt chính sách hiện tại bằng sổ đăng ký:

;Tắt "EnableUIADesktopToggle"=dword:00000000

Chế độ phê duyệt của quản trị viên cho tài khoản quản trị viên tích hợp

Cài đặt này xác định xem Kiểm soát tài khoản người dùng có áp dụng chế độ phê duyệt của quản trị viên cho tài khoản tích hợp hay không "Người quản lý". Tài khoản tích hợp mặc định này cho phép người dùng đăng nhập vào chế độ tương thích với Windows XP, cho phép họ chạy bất kỳ ứng dụng nào với đầy đủ quyền quản trị viên. Theo mặc định, cài đặt chính sách này bị tắt.

Các giá trị tham số có thể có:

  • Bao gồm. Khi bạn chọn tùy chọn này, tài khoản quản trị viên tích hợp sẽ sử dụng chế độ phê duyệt của quản trị viên. Trong trường hợp này, bất kỳ hoạt động nào yêu cầu nâng cao quyền sẽ kèm theo yêu cầu xác nhận hoạt động.
  • Tàn tật. Tài khoản quản trị viên tích hợp chạy tất cả các ứng dụng có đầy đủ quyền quản trị viên.

Cài đặt chính sách hiện tại bằng sổ đăng ký:

;Tắt "FilterAdministratorToken"=dword:00000000

Phần kết luận

Bài viết này giải thích tất cả các cài đặt Kiểm soát tài khoản người dùng có thể có. Tất cả mười cài đặt chính sách bảo mật đều được xem xét, chịu trách nhiệm cho tất cả các hành động có thể có liên quan đến UAC. Ngoài việc thiết lập Kiểm soát tài khoản người dùng bằng Chính sách nhóm, các chỉnh sửa sổ đăng ký tương đương cũng được thảo luận.

Nhiều chương trình yêu cầu nâng cao quyền khi khởi động (biểu tượng cái khiên bên cạnh biểu tượng), nhưng trên thực tế, chúng không yêu cầu quyền quản trị viên để hoạt động bình thường (ví dụ: bạn đã cấp thủ công các quyền cần thiết cho người dùng đối với thư mục chương trình trong ProgramFiles và các nhánh đăng ký được chương trình sử dụng). Theo đó, khi chạy một chương trình như vậy với tư cách người dùng đơn giản, nếu bật Kiểm soát tài khoản người dùng trên máy tính, lời nhắc UAC sẽ xuất hiện và người dùng sẽ được yêu cầu nhập mật khẩu quản trị viên. Để bỏ qua cơ chế này, nhiều người chỉ cần vô hiệu hóa UAC hoặc cấp cho người dùng quyền quản trị viên trên máy tính bằng cách thêm người đó vào nhóm quản trị viên cục bộ. Đương nhiên, cả hai phương pháp này đều không an toàn.

Tại sao một ứng dụng thông thường có thể cần quyền quản trị viên

Chương trình có thể cần quyền quản trị viên để sửa đổi một số tệp nhất định (nhật ký, cấu hình, v.v.) trong thư mục riêng của nó trong C:\Program Files (x86)\SomeApp). Theo mặc định, người dùng không có quyền chỉnh sửa thư mục này, do đó, để chương trình đó hoạt động bình thường, cần có quyền quản trị viên. Để giải quyết vấn đề này, bạn cần gán quyền thay đổi/ghi theo cách thủ công cho người dùng (hoặc nhóm Người dùng) vào thư mục chương trình với tư cách quản trị viên ở cấp độ NTFS.

Ghi chú. Trên thực tế, cách lưu trữ dữ liệu ứng dụng đang thay đổi trong thư mục riêng của nó trong C:\Program Files là không chính xác. Sẽ đúng hơn nếu lưu trữ dữ liệu ứng dụng trong hồ sơ người dùng. Nhưng đây là vấn đề về sự lười biếng và kém cỏi của các nhà phát triển.

Chạy chương trình yêu cầu quyền quản trị viên từ người dùng chuẩn

Trước đây chúng tôi đã mô tả cách bạn có thể sử dụng tham số RunAsInvoker. Tuy nhiên, phương pháp này không đủ linh hoạt. Bạn cũng có thể sử dụng nó với việc lưu mật khẩu quản trị viên /SAVECRED (cũng không an toàn). Hãy xem xét một cách đơn giản hơn để buộc bất kỳ chương trình nào khởi chạy mà không có quyền quản trị viên (và không cần nhập mật khẩu quản trị viên) khi bật UAC (4.3 hoặc cấp 2).

Ví dụ: hãy sử dụng tiện ích chỉnh sửa sổ đăng ký - regedit.exe(nó nằm trong thư mục C:\windows\system32). Khi bạn chạy regedit.exe, một cửa sổ UAC sẽ xuất hiện và trừ khi bạn xác nhận mức nâng đặc quyền, Trình soạn thảo Sổ đăng ký sẽ không khởi động.

Hãy tạo một tập tin trên máy tính để bàn chạy-as-non-admin.bat với văn bản sau:

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"

Bây giờ, để buộc ứng dụng chạy mà không có quyền quản trị viên và chặn lời nhắc UAC, chỉ cần kéo tệp exe mong muốn vào tệp bat này trên màn hình nền.

Sau đó, Trình chỉnh sửa sổ đăng ký sẽ khởi động mà không xuất hiện lời nhắc UAC. Mở trình quản lý quy trình và thêm một cột Cao(Với mức quyền cao hơn), bạn sẽ thấy hệ thống có tiến trình regedit.exe với trạng thái không cấp cao (chạy với quyền người dùng).

Hãy thử chỉnh sửa bất kỳ tham số nào trong nhánh HKLM. Như bạn có thể thấy, quyền truy cập để chỉnh sửa sổ đăng ký trong nhánh này bị từ chối (người dùng này không có quyền ghi vào các nhánh đăng ký hệ thống). Nhưng bạn có thể thêm và chỉnh sửa khóa trong nhánh đăng ký của chính người dùng - HKCU.

Theo cách tương tự, bạn có thể khởi chạy một ứng dụng cụ thể thông qua tệp bat, chỉ cần chỉ định đường dẫn đến tệp thực thi.

run-app-as-non-admin.bat

Đặt ApplicationPath="C:\Program Files\MyApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

Bạn cũng có thể thêm menu ngữ cảnh để bổ sung khả năng khởi chạy tất cả các ứng dụng mà không cần nâng lên. Để thực hiện việc này, hãy tạo tệp reg sau và nhập nó vào sổ đăng ký.

Trình chỉnh sửa Sổ đăng ký Windows Phiên bản 5.00


@="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && bắt đầu \"\" \"%1\"\""

Sau đó, để khởi chạy bất kỳ ứng dụng nào không có quyền quản trị viên, chỉ cần chọn mục “” trong menu ngữ cảnh.

Biến môi trường __COMPAT_LAYER và tham số RunAsInvoker

Biến môi trường __COMPAT_LAYER cho phép bạn đặt các mức tương thích khác nhau cho các ứng dụng (tab Khả năng tương thích trong thuộc tính của tệp exe). Sử dụng biến này, bạn có thể chỉ định cài đặt tương thích mà chương trình sẽ chạy. Ví dụ: để chạy ứng dụng ở chế độ tương thích Windows 7 và độ phân giải 640x480, hãy đặt:

đặt __COMPAT_LAYER=Win7RTM 640x480

Trong số các tùy chọn của biến __COMPAT_LAYER mà chúng tôi quan tâm, chúng tôi nêu bật các tham số sau:

  • RunAsInvoker- khởi chạy một ứng dụng với các đặc quyền của tiến trình gốc mà không cần yêu cầu UAC.
  • Chạy Như Cao Nhất- khởi chạy ứng dụng với quyền tối đa dành cho người dùng (yêu cầu UAC xuất hiện nếu người dùng có quyền quản trị viên).
  • RunAsAdmin- khởi chạy ứng dụng với quyền quản trị viên (dấu nhắc AUC luôn xuất hiện).

Những thứ kia. Tham số RunAsInvoker không cung cấp quyền quản trị viên mà chỉ chặn sự xuất hiện của cửa sổ UAC.

Hmm, sự khác biệt giữa cái này và cái kia chỉ nằm ở cách thiết lập các tham số tương thích, trong trường hợp đầu tiên - theo cách thủ công, trong trường hợp thứ hai - điều tương tự, chỉ thông qua trình hướng dẫn. Nhưng dù sao cũng cảm ơn vì câu trả lời chi tiết))

Cảm ơn tôi biết rồi))))))))))))))))))

Ok, tôi là quản trị viên (có thể hơi mù chữ, nhưng tôi hy vọng sẽ bắt kịp...) Làm cách nào tôi có thể được phép chạy ứng dụng này (và chỉ ứng dụng này)? Đồng thời, để không phải liên tục chạy vào máy của mình (để nhập mật khẩu quản trị viên cục bộ mà anh ta không nên biết) khi cần khởi chạy ứng dụng này.

Tôi rất biết ơn bạn đã nhắc nhở tôi một phần của bài giảng về chủ đề “Hệ điều hành”. Hãy để tôi cho bạn một ví dụ khác, cổ điển:

Đôi khi người dùng cần thay đổi mật khẩu đăng nhập của họ. Bản thân người dùng không có quyền truy cập vào cơ sở dữ liệu mật khẩu. Tuy nhiên, chương trình anh ta sử dụng để thay đổi mật khẩu chạy với quyền nâng cao. Điều này cho phép anh ta cuối cùng thay đổi mật khẩu của mình.

Vì vậy, trường hợp của tôi cũng tương tự. Làm cách nào để "nói" với hệ thống rằng chương trình sẽ chạy với quyền nâng cao? Trong trường hợp này, nó sẽ được khởi chạy bởi một người dùng từ nhóm “người dùng”/“người dùng thành thạo”.

Điều này thực sự có thể được thực hiện bằng cách chạy chương trình như một "tác vụ đã lên lịch" với tư cách một người dùng khác. Mọi thứ sẽ ổn - thậm chí nó còn khởi động, nhưng giao diện đồ họa (cửa sổ chương trình) không được hiển thị trên màn hình của người dùng...

Khái niệm mâu thuẫn??? Tôi đã đưa ra một ví dụ ở trên - nhiệm vụ này khá chuẩn đối với bất kỳ HĐH nào. Tôi chỉ không muốn giải quyết nó bằng các công cụ của bên thứ ba (không có trong Windows Vista). Tôi đã tắt UAC - trong mọi trường hợp, ứng dụng chỉ hoạt động chính xác với quyền quản trị viên, nó là như vậy - cụ thể.... Có vẻ như không thể đưa người dùng này vào nhóm "Quản trị viên" cục bộ vì lý do bảo mật .

Về kịch bản - cho chạy như có một lá cờ cho phép bạn nhớ mật khẩu, nhưng trong trường hợp này người dùng sẽ có thể chạy bất kì chương trình với quyền quản trị viên.

Điều này có nghĩa là tôi không muốn tung ra phần mềm có mã nguồn không ai nhìn thấy, không biết gì về nhà cung cấp và trang web của nó “nằm trong tay mọi người”. Còn người dùng thì sao - ừ, nếu thế là đủ thì cuộc thảo luận này đã không xuất hiện trên diễn đàn..... =(

Tôi muốn tin rằng không phải mọi thứ đều tệ như vậy.