首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不带UAC的VB.NET运行shell?

不带UAC的VB.NET运行shell?
EN

Stack Overflow用户
提问于 2013-11-25 11:12:44
回答 2查看 1.9K关注 0票数 0

我们使用"hobocopy“来运行PST文件的备份。

问题是,当运行hobocopy时,它会弹出一个“用户访问控制”对话框,请求运行权限。

我在VB.net中使用"Shell“来运行hobocopy,但是它需要在后台悄悄地运行。

有没有一种方法可以使用管理权限运行"Shell“命令,这样它就不会请求许可了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-25 11:33:53

我的理解是,您的应用程序正在从您编写的代码中启动hobocopy。

如果您想在没有任何UAC提示的情况下这样做,那么您有两个选项:

  • 禁用UAC (不推荐!)
  • 以更高的权限启动应用程序(例如“以管理员身份运行”)

在一个典型的情况下,我不会推荐这两个,但是如果你必须运行hobocopy (从应用程序的描述),我可以想象没有UAC的自由选项。

您可以尝试的另一件事是右键单击Windows中的应用程序或快捷方式,选择"Properties“,并在对话中启用”“选项。根据应用程序请求的确切权限,这可能会避免UAC提示。(例如:它适用于任务管理器,但不适用于Regedit;我不需要测试Hobocopy。)

票数 1
EN

Stack Overflow用户

发布于 2013-11-25 11:27:44

为什么一起使用Shell?

试着使用

代码语言:javascript
运行
复制
System.Diagnostics.Process
System.Diagnostics.ProcessStartInfo

它为您提供了更多的可能性,例如不在shell中运行它,或者在特定的上下文中执行程序(例如其他用户)。

编辑:正如丹点所指出的那样,这并不能解决UAC问题,所以这里有更多的想法--

在搜索网络寻找解决方案之后,我很快注意到有一些方法可以击败UAC,但这些方法是Hack。因此,如果你需要击败UAC一个平滑的人机界面,最可能是一个设计错误。

解决这一问题的方法可包括:

  • 以管理员身份执行hobocopy (需要启用管理员帐户)
  • ->使用丹描述的方式,或使用ProcessStartInfo.User
  • 消去UAC
  • 侵入你的道路进入一个更高的许可状态
  • 服务的形式运行程序或辅助进程,通过ServiceControl与其进行接口。

只有后者在我看来是一个合法的解决方案,但需要重新设计你的应用程序。在我看来,按事件或计划执行一段备份软件似乎是服务应该做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20190744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档