Question

J'ai un projet de configuration Visual Studio et le déploiement. J'ai ajouté un script .cmd en elle. Le script aurait besoin des privilèges d'administrateur pour exécuter. Lorsque l'utilisateur clique sur le fichier setup.exe, UAC demande à l'utilisateur des autorisations d'administrateur. Donc je suppose que tous les processus créés et appelés au sein setup.exe courront la capacité d'administration. Je fis donc l'appel configuration mon application console qui contient le code suivant.

ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cmd.exe";
Process.Start(p1);

Il aurait dû travaillé comme il est exécuté sous l'espace d'administrateur.

Je veux courir cmd.exe à c # classe de processus comme exécutant Windows Vista administrator.I'm.

J'ai essayé ne fonctionne pas! Que puis-je faire?

Était-ce utile?

La solution

Essayez d'exécuter la runas commande :

...

using System.Diagnostics;

...

string UserName = "user name goes here";
ProcessStartInfo p1 = new ProcessStartInfo();
  p1.FileName = "runas";
  p1.Arguments = String.Format("/env /u:{0} cmd", UserName);
Process.Start(p1);

...

(Et je ne pense pas que vous avez besoin d'un UseShellExecute explicite)

Autres conseils

Essayez ça, Cela a fonctionné pour moi.

...

using System.Diagnostics;

...

ProcessStartInfo startInfo = new ProcessStartInfo();
  startInfo.UseShellExecute = true;            
  startInfo.Verb = "runas";
  startInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
Process.Start(startInfo);

...

Ashutosh

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top