热点推荐
ZOL首页 > 软件资讯 > 技巧应用 > 操作系统 >

以管理员打开CMD和PowerShell

实用:Windows Vista的脚本提升PowerToy

风行资讯 【转载】 2007年07月05日 08:17 评论

提升其他文件类型

  runas命令技术几乎可应用于任何文件类型。例如,Windows Vista中的Windows安装程序设计为:当安装某个程序包需要进行提升时“采取正确的措施”。但是,在UAC打开的情况下,某些设计不够精良的程序包(例如,其中未正确标记自定义操作)将无法正确安装,除非在提升的命令提示符下使用msiexec.exe进行安装。

  为了能够在资源管理器中直接完成此任务,我创建了ElevateMSI.inf。此工具克隆了Windows安装程序包(.msi)和修补程序(.msp)的默认操作以便为程序包添加“以管理员身份安装”上下文菜单选项,并为修补程序添加“以管理员身份应用修补程序”上下文菜单选项。

以管理员身份在此处打开CMD和PowerShell提示符

  最常用的WindowsPowerToy之一就是古老的“在此处打开命令(或CMD)提示符”。安装此PowerToy后,您可以在Windows资源管理器中右键单击某个文件夹或驱动器,然后从上下文菜单中选择“在此处打开命令提示符”。这将以所选文件夹为当前目录打开一个命令提示符。

  由于这非常方便,因此我会在一天中频繁使用此PowerToy。当我尝试学习和使用WindowsPowerShell时,我发现自己需要同样的功能。因此,我创建了“在此处打开PowerShell提示符PowerToy”(请参阅侧栏中的“旧的PowerToy重获新生”)。

  但至此仍然不够:很多时候我希望能够使用提升的特权打开外壳提示符。这导致了最后两个PowerToy的诞生:“以管理员身份在此处打开命令提示符”(CmdHereAsAdmin.inf)和“以管理员身份在此处打开PowerShell提示符”(PowerShellHereAsAdmin.inf、elevate.cmd、elevate.vbs),如图2所示。这两个PowerToy与其未经提升的对应项(为方便起见,我们将其包含在代码下载中)的工作方式相同。


发v
带有提升特权的提示符

安装和实施

  要安装这些PowerToy,请右键单击相应的INF文件,选择“安装”,并批准提升。要将其卸载,请使用“控制面板”中的“程序和功能”选项。

  如果您深入到INF文件之内并想了解为什么这三个PowerToy将elevate.cmd和elevate.vbs安装到不同的位置,我会加以解释。多数PowerToy都是通过在注册表中向相应对象类型的HKEY_CLASSES_ROOT\objecttype\Shell项添加一个runas子项来实现的。

  但是,对于某些PowerToy,我希望某些对象类型能有两个上下文菜单项来引起提升(对于Drive和Directory对象类型,为“以管理员身份在此处打开命令提示符”和“以管理员身份在此处打开PowerShell提示符”;对于所有WSH对象类型,为“以管理员身份运行”和“使用命令提示符以管理员身份运行”)。

  由于每个对象类型只能有一个runas项,因此我不得不通过调用elevate命令来实现第二个操作。但是,由于我希望每个INF能够独立安装和卸载,所以必须将关联的elevate.cmd和elevate.vbs副本放在不同的位置。(您不能根据原始INF文件递增文件的使用计数。诚然,MSI安装程序会更好些,但我需要的是能够使用文本编辑器创建和修改的安装程序。)这种处理的一个不利方面是只有使用runas项实现的上下文菜单项才会在菜单中显示一行。

总结

  我希望您发现这些工具很有用,并能改善您的UAC体验。或许它们还会激发您创建自己的PowerToy的兴趣。(对于那些在Windows Vista上使用其他脚本语言(如Perl或Python)的人们,为那些语言创建“提升脚本”PowerToy也应当不难。)对于所有PowerToy工具,我们不提供相应支持,一切风险自负。不过无论如何,希望您在提升中找到乐趣!

上一页 1 2 
本文导航
  • 第2页:以管理员打开CMD和PowerShell
看完本文后的感受:文章感受排行>>
频道热词:微信  手机QQ  12306  
视觉焦点
新浪微博