Comment exécuter une autre application en tant qu’administrateur sur Windows XP

J’ai utilisé le fichier manifeste d’application décrit ci – dessous pour qu’une partie de mon application s’exécute avec des privilèges élevés (dont elle a besoin).
Ainsi, si nécessaire, le programme principal appelle simplement un petit assemblage à l’aide de Process.Start, qui gère ensuite la tâche pour laquelle des droits d’administrateur sont requirejs.

Cependant, comment puis-je faire la même chose sous Windows XP?
Il semble que XP ignore simplement ce manifeste et exécute le petit assemblage dans le contexte utilisateur actuel.

Le code suivant à partir d’ ici fait exactement ce dont j’ai besoin:

ProcessStartInfo processStartInfo = new ProcessStartInfo("path", "args"); processStartInfo.Verb = "runas"; using (Process process = new Process()) { process.StartInfo = processStartInfo; process.Start(); process.WaitForExit(); } 

Donc, en fait, vous devez définir “runas” sur ProcessStartInfo.Verb. Avec le manifeste joint, ce code fonctionne désormais correctement sous Windows XP, Vista et 7.

Mettre à jour:
Voir aussi cette réponse à une question similaire . C’est fondamentalement le même code, en utilisant simplement des arguments également.

Vous pouvez utiliser la commande runas .

Windows XP n’a pas de UAC.

Vous devez appeler Process.Start avec les informations de connexion d’un utilisateur disposant de privilèges administratifs.