【问题标题】:Running a vbs with process.start as another user avoiding UAC以另一个用户身份运行带有 process.start 的 vbs,避免 UAC
【发布时间】:2012-04-23 07:33:06
【问题描述】:

我正在尝试使用 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 弹出是和否选项,而不是使用用户名和密码来填写选项。

尝试查看:How to call a VBScript file in a C# application? 但这没有帮助。

【问题讨论】:

  • 这闻起来像病毒。这是干什么用的?
  • 我正在开发一个小应用程序,所以当您点击一个图标时,它会根据您点击的图标从本地服务器安装一个程序,用户名和密码由我的 IT 服务团队提供.这里没有制造病毒:) 我在 UAC 弹出窗口没有显示之前做了一些事情,然后我在 startInfo 中更改了一些内容,现在 UAC 弹出窗口显示 x|
  • UAC 将始终弹出用于执行需要提升的操作的程序。故事结束。
  • 抱歉,我的问题并不清楚。没关系,UAC 总是弹出,您可以单击是或否,但会发生 UAC 弹出用户名和密码供用户填写。在我的代码中,我在 StartInfo 中添加了 UserName 和 Password,以认为这样可以避免您必须输入用户名和密码,但仍会使用是/否选项弹出 UAC。
  • 如果您已经知道用户的密码,那么在没有提示的情况下运行应用程序会容易得多。

标签: c# vbscript passwords process.start


【解决方案1】:

您没有做错任何事,在 Windows 7 中,甚至管理员帐户也以标准用户权限运行。看看这个TechNet article by Mark Russinovich

来自上面的文章。

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


编辑: 你说的是用户模拟:

你可以看看其中的一些文章

  1. WindowsIndentity Class
  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. Windows Impersonation from C#
  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

【讨论】:

  • 我尝试了#2 文章,它就像我想要的那样工作:) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 2014-12-24
  • 2012-05-28
  • 2012-11-05
  • 1970-01-01
  • 2023-04-09
  • 2011-03-19
  • 2013-07-02
相关资源
最近更新 更多