我们的业务中使用了一款需要管理员权限才能运行的软件。但是,不允许员工访问具有管理员权限的帐户。这是在 Windows 7 环境中。
我们已通过 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);
}
代码中包含一个带有错误报告的异常捕获语句。调用 Process.Start(psi) 时不会引发异常。(更新)
谢谢。
编辑 Windows 7 的公司版本将用户访问控制设置为“从不通知”,因此在调用 Process.Start(psi) 时不会显示 UAC 弹出窗口。