分享

盆盆的博客 : Windows Vista的UAC也可以很方便:一个脚本轻松搞定

 小飞虾 2007-03-21

Windows Vista的UAC也可以很方便:一个脚本轻松搞定

盆盆的那篇文章《Windows Vista的UAC也可以很方便》 ,可能很多初学者会觉得有点难度。而且还有些网管来信,希望能够在企业范围里借助脚本去推。

所以盆盆花了点心思,编写一个批处理脚本,希望能够帮助大家。这个脚本做的非常简陋,请多多原谅。

经过Youyang兄弟的指导,这个脚本经过修改,总算看上去比较graceful一些,呵呵。

大家可以在以下地址下载这个脚本:

http://blogs./blogs/winvista/attachment/8867.ashx

一、运行脚本

下载好以后,解压缩,然后在开始菜单的“开始搜索”框里输入“userprofile”并回车,把解压缩的EasyUAC.bat拷贝到打开的文件夹中。

在开始菜单的“开始搜索”框里输入“CMD”并回车打开命令提示符窗口,在其下输入以下“EasyUAC”并回车,看到以下的结果即说明成功。
 
 
二、后续工作,很重要!!!

接下来,在开始菜单的“开始搜索”框里输入“userprofile”并回车,鼠标右键单击其下的“Explorer”,选择“附加到[开始菜单]”,然后在开始菜单上将其改名为“管理员:Windows资源管理器”。

1. 安装多个应用软件

必须事先关闭桌面上所有文件夹窗口,然后单击开始菜单上的“管理员:Windows资源管理器”菜单项,即可弹出“用户帐户控制”对话框,虽然有橙色报警信息,但是不用担心,直接单击“允许”按钮即可。

然后在打开的资源管理器窗口里定位到所需安装的软件,直接双击就可以运行,不需要再提升权限。然后依次安装其他软件即可,因为现在而言,绝大多数软件的安装不需要重启计算机,所以不麻烦。

2. 执行多个管理任务

必须事先关闭桌面上所有文件夹窗口,然后单击开始菜单上的“管理员:Windows资源管理器”菜单项,即可弹出“用户帐户控制”对话框,虽然有橙色报警信息,但是不用担心,直接单击“允许”按钮即可。

如果要执行管理任务,例如要修改系统时间,或者修改本地安全策略,可以参考盆盆所撰写的《Windows Vista的UAC也可以很方便》,了解如何在资源管理器窗口左侧的收藏夹列表里创建开始菜单的快捷方式。

3. 多个文件操作

必须事先关闭桌面上所有文件夹窗口,然后单击开始菜单上的“管理员:Windows资源管理器”菜单项,即可弹出“用户帐户控制”对话框,虽然有橙色报警信息,但是不用担心,直接单击“允许”按钮即可。

现在如果需要复制、删除、移动、新建文件,直接在打开的资源管理器窗口里进行操作,不再需要提示提升权限。 

4. 安装驱动程序等 

由于安装驱动程序、杀毒软件、或者Windows Update进行升级时,可能需要重启计算机,所以这种方法可能效果并不显著,但是也可以用来解决一些兼容性问题,有些组件可能在标准用户下无法正常安装。

5. 不推荐用该方法启动的程序

类似IE浏览器、Windows Live Messenger和其他用户程序,不推荐用这个方法启动。否则会降低系统安全。

三、注意事项

为了安全,请大家务必从ITECN博客下载此脚本文件。并最好查看一下脚本的内容,是否被篡改过。

这里唯一可惜的是,盆盆还没有办法用脚本实现创建快捷方式,否则就可以把后续的步骤都自动完成,可以更好地提升用户体验。盆盆现在正在测试用inf文件实现快捷方式的创建,如果哪位兄弟熟悉如何用脚本创建快捷方式,还请发邮件和盆盆进行联系,邮件请寄mark.itecn#gmail.com(用@代替#)。

企业管理员,可以通过组策略等方式推这个脚本。但是还是要强调一下,不推荐这么做,最好让桌面客户用标准账户登录系统。

下一篇文章里,盆盆将介绍该脚本的具体内容,并作出详细解释。
 

Windows Vista的UAC也可以很方便:脚本原理的解释

前篇文章里,盆盆描述了如何用一个脚本文件轻松完成所有设置。这里就来解释一下这个脚本的具体含义。

其实这个脚本里,最重要的命令就两条,下面逐条解释一下。

一、允许两个Explorer进程

《Windows Vista的UAC也可以很方便》这篇文章,最核心的方法,就是以高特权创建一个独立的文件夹窗口(Explorer进程)。这样就可以在其下直接运行安装程序、管理任务等,而不需要再次提升权限。

盆盆评注 问题的关键就是,默认情况下,Windows不允许启动多个Explorer进程,具体的原因可以参考MVP Smallfrogs的文章《Explorer进程被杀死以后会被Windows重新加载吗》

要想启动多个Explorer进程,就必须在“文件夹选项”的“查看”标签页中启用“在单独的进程中打开文件夹窗口”复选框。

难点就在于,如何用命令行实现这个功能。多亏了Youyang兄弟的提醒,参考了他的一篇KB,该KB记录文件夹选项的高级设置所对应的注册表布局。再通过实验分析,总算找出了这个设置所对应的注册表键值。

实验方法是通过Process Monitor对其进行监控,由于启用该值不需要管理员权限,所以初步判断可能修改HKCU下的键值。

结果发现,当尝试修改该文件夹选项时,系统首先定位到HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\DesktopProcess下的键值,去查询该设置项所对应的注册表键值。

接下来发现,“在单独的进程中打开文件夹窗口”这个设置,对应为HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced下的DWORD键值SeparateProcess,当其数值数据为1时,表示启用,如附图所示。在图中,Process Monitor检测到系统把DWORD键值SeparateProcess的数值数据设置为1。

所以就用以下命令添加该注册表键值:

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /V SeparateProcess /T REG_DWORD /d 1 /f

三、设置Explorer进程提示提升权限

为了能够单击Explorer进程,就能自动提示提升权限,需要在设置其兼容模式为“以管理员身份运行该程序”。一般我们可以在文件属性对话框的“兼容性”标签页上勾选“请以管理员身份运行该程序”复选框,这实际上对应于在注册表HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers下新增一个键值,以程序可执行文件的完全路径为键值名称,其数值数据为“RUNASADMIN”。

其实这个方法早在去年3月份盆盆就已经发表在ITECN博客上,大家可以参考《Windows Vista的UAC功能浅析(二)》

三、安全问题

1. 一个命令行就可以提升权限,那是不是太危险?

一点都不危险。因为这种修改注册表的方法,只是告诉系统自己需要提升权限。在执行这个程序时,需要用户做出选择。

那么病毒会不会采用这种方法提示提升权限?

不会!尤其是为Windows Vista设计的病毒,肯定不会这样做。因为病毒都不喜欢被人发现,都喜欢悄悄地进村,打枪的不要。正好比《天下无贼》里的傻根大喊“唉,有贼吗?你们谁是贼呀?站出来给俺看看!”相信没有贼会公然回应,否则他就是一个笨贼,还不如改行做文抄公,至少还能抄个脑满肠满钵满。

2. 恶意程序会不会劫持高特权Explorer进程?

如果是Windows 2000/XP,很可能会发生这个问题,这是因为所有应用程序运行在一个桌面上,低特权的恶意进程可以给高特权的Explorer窗口发送Window Message,以诱使Explorer重新加载该恶意进程,这就是所谓的Luring Attack。

但是Windows Vista下不会这样,这是由于MIC和UIPI的作用,低级进程无法控制高级进程,也无法向其发送Window Message,这种攻击会失败。

当然正如Mark Russinovich所说,UAC并非是一个安全边界,可以想象,专门针对Windows Vista迟早会出现,只是时间问题而已。在盆盆所译的那篇文章里,Mark Russinovich还介绍了可能的攻击方法。

当然如果您不幸在高特权的资源管理器窗口里运行了恶意程序,那么神仙也救不了您。这是一个信任的问题,如果您不信任该进程,那么就不要运行它。

在下一篇文章里,将向大家介绍,如何在Windows 2000/XP下使用类似的方法,平时用标准用户身份登录系统,执行管理任务时,用管理员凭据打开资源管理器窗口,从而以更高权限运行管理任务。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多