怎样在在VB.NET中写的服务中用管理员身份启动一个WINDOWS应用程序

如题... 如题 展开
 我来答
然后去远足
2013-08-01 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2430万
展开全部
孩子,你别做梦了,Win7的UAC是不可能允许你这么做的。
你只能通过改写app.manifest的方式使【自己的】程序自动以管理员权限运行,而不可能去以管理员权限调用【另一个】程序,这是被UAC所阻止的。

假如真的可以的话,我们不妨设想这样一个情景:某一个后门程序可以以管理员权限运行任何其他的应用程序,当然也包括木马……所以,UAC是不会允许你这样做的。
追问
大婶,用CreateProcessAsUser好像是可以的,网上有些资料,只是不知道在VB.NET里怎么用。
追答
用CreateProcessAsUser可以以"SYSTEM"权限创建子进程,就是任务管理器结束进程时警告"拒绝访问"的那种。

一般在杀软等安全防护工具上比较常见,但注意,创建的是【子进程】,杀软进程本身创建一个受保护的子进程,防止自身被病毒kill掉或用户误操作关闭。

通过这种方式在WinXP等没有UAC的操作系统下代码可执行成功,但在Win7下是不会成功的,绕开UAC?我只能说呵呵,用VB.net肯定做不到,.net本身是托管在FrameWork虚拟机的程序,你要用C++等底层一些的语言来写才行。
风中的奶牛
2013-08-02 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:82
采纳率:0%
帮助的人:113万
展开全部
Dim sInfo As New Diagnostics.ProcessStartInfo
sInfo.FileName = "目标程序路径"
sInfo.Verb = "RunAs" '以管理员身份运行
sInfo.LoadUserProfile = true
Diagnostics.Process.Start(sInfo) '运行程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式