2

我正在尝试使用 process.start() 作为另一个具有管理员权限的用户运行 vb 脚本,但我总是得到带有用户名和密码的 UAC 弹出窗口来填写。我在做什么错?

var scriptProc = new Process
                    {
                        StartInfo =
                            {
                                FileName = @"cscript,
                                WorkingDirectory = @"\\AShare\AFolder",
                                Arguments = "\"" + "Install.vbs" + "\"",
                                UseShellExecute = false,
                                WindowStyle = ProcessWindowStyle.Hidden,
                                Domain = domain,
                                UserName = username, //Admin username
                                Password = MakeSecureString(secureString),
                            }
                    };
scriptProc.Start();

我希望 UAC 弹出是和否选项,而不是使用用户名和密码来填写选项。

尝试查看:如何在 C# 应用程序中调用 VBScript 文件?但这没有帮助。

4

1 回答 1

3

您没有做错任何事,在 Windows 7 中,甚至管理员帐户都以标准用户权限运行。看看Mark Russinovich 的这篇 TechNet 文章

从上面的文章。

启用 UAC 后,所有用户帐户(包括管理帐户)都以标准用户权限运行。这意味着应用程序开发人员必须考虑他们的软件默认不具有管理权限这一事实。这应该提醒他们设计他们的应用程序以使用标准用户权限。如果应用程序或其部分功能需要管理权限,它可以利用提升机制使用户能够解锁该功能。


编辑:您所说的是用户模拟:

你可以看看其中一些文章

  1. WindowsIndentity 类
  2. http://www.codeproject.com/Articles/10090/A-small-C-Class-for-impersonating-a-User
  3. http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C
  4. 来自 C# 的 Windows 模拟
  5. http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306158
  6. http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic62740.aspx
于 2012-04-23T07:44:31.890 回答