Comment vérifier si un processus a les droits d'administration
Comment vérifier si un processus est exécuté avec les droits d'administration?
J'ai vérifié le IsUserAnAdim
function dans MSDNmais il n'est pas recommandé car il peut être modifié ou non disponibles dans les versions ultérieures de Windows. Au lieu de cela, il est recommandé d'utiliser le CheckTokenMembership
fonction.
Puis j'ai regardé l'autre exemple dans MSDN à partir d'une description de la CheckTokenMembership
fonction. Cependant, il y a de Stefan Ozminski commentaire dans MSDN qui mentionne que cet exemple ne fonctionne pas correctement sous Windows Vista si Contrôle de compte d'utilisateur est désactivé.
Enfin j'ai essayé d'utiliser Stefan Ozminski du code à partir de MSDN, mais il détermine que le processus dispose de droits d'administration, même si je le lance en vertu d'un utilisateur ordinaire, sans les droits d'administration dans Windows 7.
source d'informationauteur Vitaly
Vous devez vous connecter pour publier un commentaire.
Cela vous indiquera si vous êtes en cours d'exécution avec des privilèges élevés ou non. Vous pouvez définir le manifeste pour exécuter avec le plus possible si vous voulez qu'il invite. Il y a aussi d'autres manières de demander à windows à l'aide de code pour d'autres informations d'identification.
Vous pouvez utiliser
LsaOpenPolicy()
fonction.Le
LsaOpenPolicy
fonction ouvre un handle de l'objet de Stratégie sur un système local ou distant.Vous devez exécuter le processus "en tant Qu'Administrateur" afin que l'appel n'est pas tombé en panne avec
ERROR_ACCESS_DENIED
.Source: MSDN