Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Process.Start作为本地管理员帐户启动单独的程序_C#_Windows 7_Administrator - Fatal编程技术网

C# 使用Process.Start作为本地管理员帐户启动单独的程序

C# 使用Process.Start作为本地管理员帐户启动单独的程序,c#,windows-7,administrator,C#,Windows 7,Administrator,我们的业务中使用了一款需要管理员权限才能运行的软件。但是,不允许员工访问具有管理员权限的帐户。这是在Windows7环境中 我们已通过GPO在所需计算机上设置了本地管理员帐户。 我创建的软件的目的是启动需要管理员权限的软件,作为本地管理员帐户 到目前为止,该软件工作正常,因为它是以帐户的形式启动该软件的,但它仍然给出了它在没有管理员权限时给出的错误。如果您右键单击并在软件上运行,然后手动键入帐户详细信息,则可以正常工作 SecureString pwd = new SecureString();

我们的业务中使用了一款需要管理员权限才能运行的软件。但是,不允许员工访问具有管理员权限的帐户。这是在Windows7环境中

我们已通过GPO在所需计算机上设置了本地管理员帐户。 我创建的软件的目的是启动需要管理员权限的软件,作为本地管理员帐户

到目前为止,该软件工作正常,因为它是以帐户的形式启动该软件的,但它仍然给出了它在没有管理员权限时给出的错误。如果您右键单击并在软件上运行,然后手动键入帐户详细信息,则可以正常工作

SecureString pwd = new SecureString();
foreach (char c in "somepassword") { pwd.AppendChar(c); }
var psi = new ProcessStartInfo
{
    FileName = location,
    UserName = "localadminaccountname",
    Domain = Environment.MachineName,
    Password = pwd,
    UseShellExecute = false,
    Verb = "runas"
};
try
{
    Process.Start(psi);
}
代码中包含一个包含错误报告的exception catch语句。调用Process.Startpsi时不会引发异常。更新

谢谢

编辑
windows 7的公司版本将用户访问控制设置为从不通知,因此在调用Process.Startpsi时不会显示UAC弹出窗口。

如果UAC设置为从不通知,则它将被禁用-用户以最大权限集运行


这意味着,如果用户是管理员帐户,则不需要使用runas动词。这还意味着,如果用户不是管理员帐户,您的应用程序可能仍然无法工作,因为用户无法提升,并且OTS越肩提升被禁用。

您是否尝试为IIS应用程序池设置“加载用户配置文件”为真?我也有类似的情况。这对我有用

有关更多信息,请参阅:

以编程方式启动流程时,您是否看到需要执行验证的UAC弹出窗口?有一个包含错误报告的异常捕获。注意:您不认为了解异常说明会很有用吗?编辑问题以澄清这些问题。如果您在命令窗口中查看runas选项,您将看到有许多标志,如配置文件、环境等。这些标志可能是在右键单击时设置的,但不是在代码中设置的。