使用 process.start 以另一个用户身份运行 vbs,避免使用 UAC
本文关键字:UAC vbs 运行 start process 另一个 身份 用户 使用 | 更新日期: 2023-09-27 18:31:54
我正在尝试以另一个具有管理员权限的用户身份使用 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 文件? 但这并没有帮助。
您没有做错任何事,在Windows 7中,即使是管理员帐户也以标准用户权限运行。看看马克·鲁西诺维奇的这篇 TechNet 文章
从上面的文章。
启用 UAC 后,所有用户帐户(包括管理帐户)都将使用标准用户权限运行。这意味着应用程序开发人员必须考虑这样一个事实,即默认情况下,他们的软件没有管理权限。这应该提醒他们设计其应用程序以使用标准用户权限。如果应用程序或其部分功能需要管理权限,则可以利用提升机制使用户能够解锁该功能。
编辑:您所说的是用户模拟:
你可以看看其中一些文章
- WindowsIndentity 类
- http://www.codeproject.com/Articles/10090/A-small-C-Class-for-impersonating-a-User
- http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C
- 来自 C# 的 Windows 模拟
- http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306158
- http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic62740.aspx