文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

什么是uac功能?Vista下的UAC功能详细介绍

2023-05-22 08:15

关注

UAC是什么?

UAC的全称是User Account Control(用户账户控制),它是Windows Vista提供的一个安全特性。它会在用户使用计算机进行更改系统设置或者安装软件等会影响到系统安全性、稳定性的操作时弹出一个对话框,友善的提示用户他们要进行的操作。

当用户使用Windows Vista时,默认是启用UAC的。无论用户以什么身份登录Windows Vista计算机,即使他以管理员的身份登录计算机,都只具有普通用户的权限。当用户执行一些安装操作或者设置操作时,Vista系统会弹出一个对话框,提示用户他们要进行的操作。在这个过程中,如果您使用的是管理员的账号登录Windows Vista,那么只需要点击“Continue”或者“Allow”就可以继续进行操作了。点击的时候,UAC进行了一次权限的提升,这时管理员才是真正具有了管理员的权限。如果是以普通用户登录计算机,当他们执行这样的操作时,Windows Vista会弹出一个对话框,让这个普通用户输入一个管理员的账号和密码。而在以前的Xp系统中,如果我们是普通用户,我们就不可能进行这样的操作,但是在Vista中它也提供了这样的操作,只是你必须知道管理员的账号和密码。

这个功能可以人为的禁用和开启吗?

是可以的,Windows Vista是提供了相关的工具的。

方法一:msconfig.exe 工具

在开始菜单->运行->输入"msconfig" 回车。就会启动msconfig。点击Tools 标签,如图:

什么是uac功能?Vista下的UAC功能详细介绍

msconfig提供了启用、禁用UAC功能的两个选项,选中,然后点击Launch按钮,就设定成功了。启用新的设置需要重新启动计算机。

其实我们可以从该工具执行的命令中,可以看出是通过设定注册表来实现UAC功能的启用和禁用的。

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLua /t REG_dwORD /d 0 /f

什么是uac功能?Vista下的UAC功能详细介绍

在注册表的HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 下EnableLUA  键是用来控制UAC功能的启用和暂停,1代表启用UAC功能;0代表禁用UAC功能。这也就不难解释为什么修改UAC设定后,需要重新启动计算机了。

本地安全策略的相关设定:

在开始菜单->运行->输入"secpol.msc" 启动本地安全策略控制台。在"本地安全策略"(Local Policies)节点下"安全选项"(Security Option)子节点中有9个UAC相关的策略。

什么是uac功能?Vista下的UAC功能详细介绍

编程相关

如果您编写的程序需要较高的权限运行,可以为您程序创建一个manifest文件。在manifest文件中加入需要提升权限的描述:

<XML version="1.0" encoding="utf-8">
 <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <assemblyIdentity version="1.0.0.0" name="DemoUACApp.app"/>
   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
     <security>
       <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
         <requestedExecutionLevel  level="requireAdministrator"/>
       </requestedPrivileges>
     </security>
  </trustInfo>
</asmv1:assembly>

这样,编译后的程序图标上就会出现那个小盾牌了。我做了一个实验,尝试用程序在系统盘的Program Files文件夹下创建一个子文件夹,并在该文件夹中创建一个普通的文本文件。

实验结果如下:

1) 在app.manifest文件中配置了提升权限的选项。以普通账户运行程序,出现安全提示询问是否运行。点击"允许"后,程序能够正常运行。通过资源浏览器发现Program Files文件夹下新创建的文件夹和文件都存在。符合预期。

2) 删除app.manifest文件,重新编译程序。以普通账户运行程序,未见安全提示。发现程序仍然能够正常运行。但程序新创建的文件夹和文件在资源浏览器中不可见,通过代码仍然能够正常读取新建的文件夹和文件。有点儿出乎意外的说。

既然通过代码能够正常读取,说明文件确实在硬盘上存在。使用Administrator账户登录,发现以Administrator身份浏览文件夹时新创建的文件和文件夹可见。这就有点儿怪了,呵呵。Debug了一下代码,暂未发现在哪部分代码中进行了提权操作。但是,这提示我们如果在编程时不注意UAC问题,有可能会造成未知结果。

小贴士

其实,对于开发人员来说,在Vista下UAC造成的最多的"小麻烦"就是使用Visual Studio 创建Web应用(包括WebApp和WebService)时一定要记得"Run as Administrator",否则会因为权限不够而创建工程失败。或是使用Sql Management Studio Express时因忘了"Run as Administrator"而连不上SQL Server的服务。

您可以打开程序快捷方式的属性对话框,在"快捷方式"标签下有一个"高级按钮",打开后,勾选"Run as Administrator"选项,保存。这样您就可以每次使用鼠标左键单击打开您的Visual Studio创建您的Web应用了。只是每次的"允许"动作依然要有。如图:

什么是uac功能?Vista下的UAC功能详细介绍

感受

UAC总的来说,想法不错。但是,这是建立在用户的"火眼金睛"的基础上的。MS不能要求所有的用户都是程序员、ITPro的水平吧?对于程序员、ITPro来说,Run as Administrator也许是一个警告,但又有几个普通用户看得懂呢?我个人感觉,这个UAC对前几年那种冒用MS名义发出的打Hotfix的欺骗邮件形式的入侵,还是一点儿作用不起。打Hotfix,就要动系统文件,需要Administrator权限也理所应当。可一旦给了安装程序管理员权限,机器照样还是后门大开……

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯