Comment exécuter une autre application en tant qu'administrateur sous Windows XP
-
12-10-2019 - |
Question
J'ai utilisé le fichier manifeste d'application comme décrit ici d'avoir une partie de ma demande en cours d'exécution avec des privilèges élevés (dont il a besoin).
Ainsi, en cas de besoin, le programme principal invoque juste un petit ensemble à l'aide Process.Start qui gère alors la tâche pour laquelle des droits d'administrateur sont nécessaires.
Cependant, comment puis-je faire la même chose sous Windows XP?
Il semble XP ignore tout ce manifeste et court le petit assemblage dans le contexte de l'utilisateur actuel.
La solution
Le code suivant ici ne exactement ce que je 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 code manifeste ci-joint fonctionne maintenant très bien sur Windows XP, Vista et 7.
Mise à jour: Voir aussi cette réponse à une question similaire . Ceci est essentiellement le même code, tout en utilisant des arguments aussi bien.
Autres conseils
Vous pouvez utiliser la runas
commande.
Windows XP ne pas UAC.
Vous devez appeler Process.Start
avec les informations de connexion d'un utilisateur avec priviliges d'administration.