在Windows Vista引进的诸多安全性功能中,用户帐户控制(UAC)是最重要的功能之一。使用用户帐户控制,即便是管理员用户也使用标准特权来运行大多数应用程序,但是针对特定管理任务和应用程序功能具有“提升权限的可能”。
在使用Windows Vista一段较长的时间后,根据需要来提升任务和应用程序的权限已渐成自然。不过,在Windows Vista中尝试提升某些类型的任务时,我也遇到许多不便之处,令人感到沮丧。
因此,本着以前的Windows®PowerToys的精神,我创建了一些脚本提升PowerToy来克服这些限制。您可以在位于TechNet的代码下载中找到我将要讨论的所有PowerToy。您还可以参阅2006年11月AlexHeaton的文章“用'用户帐户控制'实现非管理员操作之梦”,了解UAC是如何工作的(请参阅“更多资源”侧栏)。
提升命令PowerToy
第一件令人不快的事情是无法从命令行或“运行”对话框提升应用程序。因此在Microsoft内部进行了广泛咨询后,我从JohnStephens(Microsoft的软件设计工程师)那里得到了一个示例脚本,提供了我所需要的信息。事实上,如果您将动词“runas”传递给ShellExecuteAPI或其COM等效项(Shell.Application的ShellExecute方法),所启动的应用程序将提示进行提升(有关详细信息,请参阅侧栏)。这就允许我创建了第一个提升PowerToy—提升命令PowerToy。
此工具(由ElevateCommand.inf、elevate.cmd和elevate.vbs文件组成)将向您的系统添加一个elevate命令。这允许您从命令行、脚本或“运行”对话框中启动提示进行提升的应用程序。例如,以下命令将用记事本打开Win.ini(在提示进行提升之后):
elevatenotepadc:\Windows\Win.ini在WindowsScriptHost(WSH)、WindowsPowerShell™或其他脚本中使用elevate命令时,需要将脚本宿主可执行文件(如wscript、cscript或powershell)指定为该应用程序。例如,要运行vbs,您需要使用如下代码:
elevatewscript“C:\windows\system32\slmgr.vbs”–dli帮助文本对此进行了解释。使用带-?参数或不带任何参数的elevate命令可查看帮助文本。
以管理员身份运行脚本
另一个不便之处是对于大多数Windows脚本类型,没有“以管理员身份运行”上下文菜单选项(当您在资源管理器中右键单击文件时)。命令外壳脚本(那些带有.bat和.cmd文件扩展名的文件)是一个例外。因此我开始对此进行调查。
对于各种文件类型,许多上下文菜单选项都是通过注册表的HKEY_CLASSES_ROOT部分中的“object”类型的命令键控制的(有关详细信息,请参阅侧栏中的“动词和文件关联”)。事实是,如果该命令键名为runas,则所调用的命令将提示进行提升。这就使我可以创建以下PowerToy:
提升HTML应用程序PowerToy(ElevateHTA.inf)
提升WindowsPowerShell脚本PowerToy(ElevatePowerShellScript.inf)
提升WSH脚本PowerToy(ElevateWSHScript.inf、elevate.cmd、elevate.vbs)
这些PowerToy分别为HTA、WindowsPowerShell和Windows脚本宿主文件类型添加了一个“以管理员身份运行”资源管理器上下文菜单项(如图1所示)。
ElevateWSHScript.inf还会添加一个“使用命令提示符以管理员身份运行”菜单项。(请在安装前阅读ElevatePowerShellScript.inf中的说明。)
“以管理员身份运行”上下文菜单选项
- 第1页:以管理员身份运行脚本
- 查看更多软件信息>> Windows Live Messenger 2009(MSN) 官方中文加强版
- 本软件在聊天软件中排名第9位
- 用户评分:4.4 | 有 76 人点评
- 更新时间:2012年04月18日
- 开发商:微软
- 下载次数:66355586次
- 应用平台:Win XP/Win2000/Win98/Win ME
- 软件分类:聊天软件
- 论坛讨论:进入论坛