Tôi cần xác định xem chương trình của tôi có đang chạy với đầy đủ quyền quản trị hay không. Bởi vì tôi có nghĩa là nếu uac được bật (cho win vista/7) mà tôi cần phải xác định xem chương trình thực sự có quyền quản trị (như nếu người dùng nhấp chuột phải và chọn "chạy như quản trị") và không giới hạn bởi uac. Làm thế nào để làm điều này trong C + +?Phát hiện xem chương trình có đang chạy với đầy đủ quyền quản trị viên
17
A
Trả lời
11
- Win9x: Mọi người đều là "admin"
- NT4: OpenThreadToken/OpenProcessToken + GetTokenInformation(...,TokenGroups,...) on DOMAIN_ALIAS_RID_ADMINS SID in a loop
- 2000+: OpenThreadToken/OpenProcessToken + CheckTokenMembership trên DOMAIN_ALIAS_RID_ADMINS SID
lựa chọn thay thế khác là: IsUserAnAdmin hoặc AccessCheck
Không cần kiểm tra công cụ TOKEN_ELEVATION * trong mã thông báo để kiểm tra quá trình hiện tại nhưng rất hữu ích nếu bạn cần tìm hiểu xem người dùng có thể nâng cao hay không vì họ có mã thông báo chia tách, v.v.
Không đặt [thẻ] vào dòng chủ đề. Đó là những gì mà Thẻ dành cho. – abelenky
Bạn chỉ có thể thử thực hiện thao tác bạn cần. – ruslik
có thể trùng lặp của [Làm thế nào để kiểm tra xem một quá trình có đặc quyền nâng cao trong Windows 7 bằng cách sử dụng C++ bản địa?] (Http://stackoverflow.com/questions/4196552/how-to-check-if-a-process-has-elevated -privileges-in-windows-7-using-native-c) –