使用 Process.Start 和 UAC 在 .NET 中模拟
我正在尝试从另一个 .NET 程序运行程序,该程序需要使用 Process.Start (System.Diagnostics) 方法的模拟选项进行提升。用于模拟的用户是本地管理员。操作系统是2008年,UAC已开启。 每当调用进程启动时,我都会收到 Win32 权限错误:
“请求的操作需要提升”
I am trying to run programs from another .NET program that requires elevation using the impersonation option of the Process.Start (System.Diagnostics) method. The user for impersonation is a local administrator. The O/S is 2008 and UAC is turned on.
Whenever calling process start I'm getting a Win32 permission error:
"The requested operation requires elevation"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您调用的 .NET 应用程序在 app.manifest 中配置正确,则无需在 Process.Start 调用中指定任何内容 - UAC 将自动显示。
应用程序清单设置:
If the .NET application you are calling is configured properly in the app.manifest, you don't have to specify anything in the Process.Start call - the UAC will appear automatically.
app.manifest setting:
您可能会发现一些有用的信息:
http://www.codeproject.com/KB/cs/ zetaimpersonator.aspx
http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity.impersonate%28VS.71%29.aspx
Some information you might find helpful:
http://www.codeproject.com/KB/cs/zetaimpersonator.aspx
http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity.impersonate%28VS.71%29.aspx