Je dois déterminer si mon programme fonctionne avec des droits d'administrateur complets. Je veux dire par là que si uac est activé (pour win vista/7), j'ai besoin de déterminer si le programme possède des droits d'administrateur (comme si l'utilisateur cliquait sur le bouton droit de la souris et sélectionnait "administator"). Comment est-ce que je fais cela en C++?Détecter si le programme s'exécute avec les droits d'administrateur complets
17
A
Répondre
11
- Win9x: Tout le monde est "admin"
- NT4: OpenThreadToken/OpenProcessToken + GetTokenInformation(...,TokenGroups,...) on DOMAIN_ALIAS_RID_ADMINS SID in a loop
- 2000+: OpenThreadToken/OpenProcessToken + CheckTokenMembership sur DOMAIN_ALIAS_RID_ADMINS SID
D'autres alternatives sont: IsUserAnAdmin ou AccessCheck
La vérification de TOKEN_ELEVATION * dans le jeton n'est pas nécessaire pour tester le processus en cours mais est utile si vous avez besoin de savoir si l'utilisateur peut élever parce qu'il a un jeton fendu, etc.
Ne placez pas [tags] dans la ligne d'objet. C'est ce que les tags sont pour. – abelenky
Vous pouvez simplement essayer de faire l'opération pour laquelle vous avez besoin des droits. – ruslik
duplication possible de [Comment vérifier si un processus a des privilèges élevés dans Windows 7 en utilisant C++ natif?] (Http://stackoverflow.com/questions/4196552/how-to-check-if-a-process-has-elevated -privileges-in-windows-7-using-native-c) –