以管理员身份启动流程

时间:2013-02-28 09:07:41

标签: c# wpf

我有一个应用程序(称为“启动器”),我可以在其中启动其他应用程序

其中一个应用程序需要管理员权限。如果我尝试从启动器启动它,我会得到一个例外,它说我需要更高的权限。

从Launcher启动应用程序的代码如下:

try
{
   ProcessStartInfo startInfo = new ProcessStartInfo(PATH, ARGUMENT)
      {
         WorkingDirectory = WORKINGDIRECTORY
      };
   Process.Start(startInfo);
}
catch(Exception ex)
{
   MessageBox.Show(ex.Message);
}

如果我启动启动器,一切正常。但我不想每次都以管理员身份启动Launcher。

如何从非管理员进程中以管理员身份启动新流程?

2 个答案:

答案 0 :(得分:0)

您的应用需要是管理员,或者您需要提供用户名密码。对于用户名/密码方法,请参阅:

https://groups.google.com/forum/?fromgroups=#!msg/microsoft.public.dotnet.languages.csharp/u5YuEz416R8/1oTRvUUzKj4J

这有更多您正在寻找的方法,但它并不是您可能喜欢的一小段代码。

Process.Start with different credentials with UAC on

否则,请将此添加到您的应用清单文件中。

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

答案 1 :(得分:0)

创建具有管理员权限的帐户,然后使用管理员帐户的相应值填充UserName实例上的PasswordProcessStartInfo属性。