欢迎使用针对 Windows Vista 的新提升 PowerToy 的另一个版本。我要向您展示如何将“以管理员身份运行”功能应用于我喜欢的一些第三方脚本工具,并演示如何取代 Windows Vista 中已取消的一项便捷 Windows XP 功能,另外介绍提升 PowerToy 中提供的一些便捷工具。
以管理员身份运行其他脚本工具
在本文中,我为一些第三方脚本工具创建了“以管理员身份运行”PowerToy:
●AutoIt v3
●AutoHotkey
●ActivePerl
●KiXtart 2010
实际使用的文件名分别为 ElevateAutoIt3.inf、ElevateAutoHotKey.inf、ElevatePerlScript.inf 和 ElevateKiXtart.inf。对于 AutoIt v3、AutoHotkey 和 ActivePerl 而言,安装过程非常简单。只需下载相应的应用程序并将其安装在默认位置即可。安装所需的应用程序后,即可为每个工具安装合适的“以管理员身份运行”PowerToy。
遗憾的是,KiXtart 2010 没有提供安装程序。因此,为确保将 KiXtart 安装到标准位置以使我的 PowerToy 正常工作,我提供了一个 INF 文件,此文件用于将 KiXtart 2010 (v 4.60) 安装到 Program Files\KiXtart 下,并注册 .kix 文件扩展名。
将 Install_KiXtart.inf 文件(包含在本文随附的代码下载中)复制到同一文件夹下。然后右键单击 Install_KiXtart.inf 并选择“安装”。这样,您就可以轻松安装 ElevateKiXtart.inf PowerToy 了。
“以其他用户身份运行”PowerToy
创建用户帐户控制 (UAC) 后,用户(甚至是管理员用户)可以使用标准用户权限运行大多数应用程序,从而使操作系统不易被恶意软件破坏。UAC 可以提升管理任务及其他应用程序功能。右键单击可执行文件可找到“以管理员身份运行”选项,通过该选项可实现这种提升。我在 2007 年 6 月刊中讨论的提升 PowerToy 扩展了此项功能,使其可用于其他文件和对象类型。
此功能内置于 Windows Vista 中,对于许多管理任务而言,它确实很有效。但是,Windows Vista 忽略了一种重要情形。许多 IT 部门有这样一项策略:网络管理员使用一个用户帐户执行日常任务(使用电子邮件、创建文档等),而另一个帐户专用于网络管理(或本地计算机管理)。
这样一来,如果网络管理员在执行日常任务时不慎运行了恶意软件,则不会危及整个系统(或管理员所在的域),从而可降低风险。在 Windows XP 上,这可以使用“以...身份运行”右键单击选项实现。但是 Windows Vista 中已取消此选项,而由“以管理员身份运行”选项取代。
不过,Windows Vista 中保留了 runas 命令行工具。遗憾的是,此工具无法用于最常用的双帐户任务 — 运行 Microsoft® 管理控制台 (MMC) 管理单元。例如,假设已委派您在 Active Directory® 中执行一些帐户管理任务。您正在以标准用户身份执行日常任务,并且您的网络管理帐户也是启用了 UAC 的 Windows Vista 计算机上本地管理员组中的一个成员(这样您可以根据需要安装网络管理工具)。现在,您要使用您的 Active Directory 管理帐户启动 Active Directory 用户和计算机 (ADU&C),并尝试使用 runas 命令,如下所示:
runas /user:mydomain\admin
"mmc.exe %windir%\system32\dsa.msc" |
遗憾的是,这并不能启动 ADU&C。您会收到一条 runas 错误,显示“请求的操作需要提升”。此时,MMC 可执行文件被标记为以 highestAvailable 权限级别运行。您的网络管理帐户的 highestAvailable 级别是管理员,因此以这种方式启动 ADU&C 需要提升;而 runas 不会引发提升提示,所以就发生了此项错误。
由于 Windows Vista 既没有提供“以...身份运行”上下文菜单项,也没有提供能够以需要提升的其他用户身份运行
本文章更多内容:1 - 2 - 3 - 4 - 下一页>> |