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

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 标签,如图:

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

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

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

在开始菜单->运行->输入"secpol.msc" 启动本地安全策略控制台。在"本地安全策略"(Local Policies)节点下"安全选项"(Security Option)子节点中有9个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总的来说,想法不错。但是,这是建立在用户的"火眼金睛"的基础上的。MS不能要求所有的用户都是程序员、ITPro的水平吧?对于程序员、ITPro来说,Run as Administrator也许是一个警告,但又有几个普通用户看得懂呢?我个人感觉,这个UAC对前几年那种冒用MS名义发出的打Hotfix的欺骗邮件形式的入侵,还是一点儿作用不起。打Hotfix,就要动系统文件,需要Administrator权限也理所应当。可一旦给了安装程序管理员权限,机器照样还是后门大开……

(0)

相关推荐

  • UAC是什么 Win7/vista系统关闭UAC操作方法

    uac是什么?可能好多网友都还不清楚UAC名称的含义。UAC就是用户账号控制功能。那么uac有什么用呢?如何关闭UAC功能呢?这就是今天小编要讲解的话题了。具体内容如下: UAC(User Accou ...

  • win8.1操作系统关闭uac对话框但不关闭uac功能的方法图文详细讲解

    win8.1的uac虽然有时候很烦,但完全关闭uac还可能导致Metro许多功能不能使用,而且出于安全考虑小编劝大家还是不要完全关闭,那有没有关闭uac对话框而不关闭uac功能的方法呢? 操作步骤 1 ...

  • Windows Vista下IIS使用常见问题

    XP中的IIS设置是非常简单的,打了2003中常常会出现问题的也就是父路径的启用,但是在Vista中,IIS的管理界面和方式有了很大的差别,出现的问题也就多了起来,最典型的就是权限问题,特别是ASP与 ...

  • 如何在Vista下设置拨号器自动拨号上网

    还在使用互联星空拨号的朋友请注意了,Windows Vista下怎么设置拨号器自动拨号上网,特别罗列步骤如下: (1)win+r输入regedit进入注册表; (2)依次打开打开HKEY_CURREN ...

  • Windows 7 和Vista下IE8访问交通银行网上银行的解决办法

    今天要跟大家分享的是如何在 Windows 7 和 Windows Vista 下的 IE8 上访问交通银行的解决办法。 笔者 一直使用交通银行的网上银行(以下简称:bankcomm)来交自来水和电费 ...

  • VISTA 下如何通过红外线连接外接设备 以索尼手机为例

    使用红外线连接发送或接收文件可以使用红外线连接将文档、文件夹或图片从一台设备发送到另一台设备。例如,可以将文档从计算机发送到手持设备,或如果数字照相机具有红外功能,则可以将照片从照像机发送到计算机。 ...

  • 在Vista下操作磁盘配额的实用技巧

     我们知道,对于NTFS文件系统来说,可以为每个用户分配指定数量的磁盘空间,无论是本地或是远程登录用户都可以使用这一功能。如果你的系统像设置了多个账户,那么使用磁盘配额是很有必要的,否则,你的硬盘空间 ...

  • Vista下浏览网页问题

    经常在论坛问答区逛都应该知道,很多人都在抱怨Vista下网页浏览不了或是速度特别慢,一般情况喜爱我们都会考虑是迅雷占用了过多的带宽,其实,有时候罪魁祸首是Vista的TCP自动调谐功能。 问题 尝试在 ...

  • Vista下UC聊天室立体声混音设置方法

    自从UC2008beta版推出后,有网友反映该版本不支持Vista系统混音功能,无法设置混音在UC聊天室播放伴奏音乐唱歌。其实在Vista系统下能否使用混音功能,与UC版本无关,它只是声卡设置问题。 ...