none
绕过UAC RRS feed

  • 问题

  • 先讲清楚,我用的是VB2008.
    1,请问读取注册表(不是写入)是否需要管理员权限?
    2,UAC能不能在程序运行时添加?就是不需要重新启动程序就可以使正在运行的程序获得管理员权限
    3,如何让程序自动带有UAC标志?我通过代码来检测管理员身份,如果不是管理员就弹出UAC对话框重新启动程序,但是程序并没有UAC的盾牌标志(像360安全卫士就有盾牌标志)
    4,有没有办法绕过UAC?每次启动程序都弹出UAC很麻烦。让程序只有首次启动需要UAC,之后启动就直接已管理员模式启动。有这样的方法么?像金山毒霸,安装以后都不会弹出UAC。
    5,网上有一种靠计划任务来实现开机绕过UAC的方法。但是,我如何让程序被添加到计划任务中?(自动的,不要说什么指导用户手动添加)
    2009年4月21日 5:52

答案

  • 1.Windows Vista为了提供兼容性设计了注册表虚拟化机制,就是说程序的注册表操作会由系统重定向到另一注册表位置,并不会对真正的注册表值进行改变(类似于沙箱的原理)。当然如果应用程序有管理员权限的话就不会实行虚拟化机制

    2.似乎是不可以在运行时提高当前进程的权限的……一般来说都是使用runas加重新启动程序的方法激活UAC对话框。

    3和4,请看截图:

    VB2008的项目属性中多出了一个“查看UAC设置”按钮,可以通过编辑app.manifest文件设置UAC选项


    其中的代码如下,将asInvoker更改为requireAdministrator或者是highestAvailable后保存编译,应用程序就可以在启动时激活UAC对话框并提高权限了,同时图标上也会加上盾牌
    <!-- UAC 清单选项
                如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换 
                requestedExecutionLevel 节点。
    
            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
    
                如果您希望利用文件和注册表虚拟化提供
                向后兼容性,请删除 requestedExecutionLevel 节点。
            -->
            <requestedExecutionLevel level="asInvoker" uiAccess="false" />
    5.将程序添加到计划任务中也需要管理员权限,具体方法请搜索一下

    ***** 本人目前处于努力学习模式,希望大家多多伸手帮助~ *****
    2009年4月22日 5:51

全部回复

  • 如果你说的能够通过编程方式解决  那么病毒程序也就可以做到   那么uac就不安全  那么uac就会升级 让病毒没空子钻  那么你马上也就没办法通过编程方式解决

    绕了个圈子  结果还是不可能

    uac就是不让你用爽的  
    工作突然有点忙 嘿嘿
    2009年4月22日 3:40
    版主
  • 你敢保证在UAC下就没有病毒入侵了?UAC挡不住病毒的。而且现在已知的开机不弹出UAC的方法,利用计划任务。


    还有其他问题呢?

    2009年4月22日 4:27
  • 1.Windows Vista为了提供兼容性设计了注册表虚拟化机制,就是说程序的注册表操作会由系统重定向到另一注册表位置,并不会对真正的注册表值进行改变(类似于沙箱的原理)。当然如果应用程序有管理员权限的话就不会实行虚拟化机制

    2.似乎是不可以在运行时提高当前进程的权限的……一般来说都是使用runas加重新启动程序的方法激活UAC对话框。

    3和4,请看截图:

    VB2008的项目属性中多出了一个“查看UAC设置”按钮,可以通过编辑app.manifest文件设置UAC选项


    其中的代码如下,将asInvoker更改为requireAdministrator或者是highestAvailable后保存编译,应用程序就可以在启动时激活UAC对话框并提高权限了,同时图标上也会加上盾牌
    <!-- UAC 清单选项
                如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换 
                requestedExecutionLevel 节点。
    
            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
    
                如果您希望利用文件和注册表虚拟化提供
                向后兼容性,请删除 requestedExecutionLevel 节点。
            -->
            <requestedExecutionLevel level="asInvoker" uiAccess="false" />
    5.将程序添加到计划任务中也需要管理员权限,具体方法请搜索一下

    ***** 本人目前处于努力学习模式,希望大家多多伸手帮助~ *****
    2009年4月22日 5:51
  • 谢谢楼上,但是,我是想要经过一次UAC提示以后不再出现UAC提示,所以添加计划任务的方法可行!所以请告知方法。
    2009年4月25日 14:40