0

我们的业务中使用了一款需要管理员权限才能运行的软件。但是,不允许员工访问具有管理员权限的帐户。这是在 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 弹出窗口。

4

2 回答 2

0

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

有关详细信息,请参阅: ASP.NET 中的安全异常和 IIS 7.5 中的加载用户配置文件选项

于 2012-12-03T06:29:17.857 回答
0

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

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

于 2012-01-27T13:53:39.033 回答