CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > WinSystem子站 > 终端用户

Windows PowerShell中存储并运行脚本

作者: Christa Anderson,  出处:TechTarget, 责任编辑: 袁绍龙, 
2007-06-13 08:39
  这一期,我们来讲述一下怎样在Windows PowerShell中运行以前存储过的脚本……

  尽管您是个学语言的新手,但Windows PowerShell也能让您受益非浅。在我的上一期的脚本课堂栏目中,大家学到了如何检验服务,有选择性的开启和停止服务,进行磁盘清点和使用Powershell的过滤器来查找一个指定的WMI帮助课程。

  尽管您能使用一个单一的命令行完成很多的任务,但是在一开始的时候,查阅和寻求语法帮助规则还是要花一些时间的。要是能把指定的命令或者命令行做成一个脚本,以备下次使用该多好啊!这一期,我们就来讲述一下怎样在您的电脑上运行以前存储过的脚本。

  如何保存一个Windows PowerShell命令

  您无法保存一个在Windows PowerShell上运行过的小命令。但是您可以在一个文本编辑器,例如记事本上创建一段脚本,并将其存成一个扩展名为.psl的文件。(如果您使用的是Windows PowerShell的Monad测试版的话,要注意的是把原来的扩展名.msh改成.psl。)

  对于那些有过管理脚本经验的人来说,上面所讲的东西没有什么新奇的。但如果在这方面,您确实还很缺少经验的话,就一定要记住,命令要在一个文本编辑器里进行编写,而不是word文档里。Word文档会在里面添加一些特殊的字符,而这会引发您的命令或者命令行运行失败。另外,在输入脚本名字之前,一定要选择“所有文档”这个选项,否则它会自动被命名为“myscript.ps1.txt”的一个文件。

  这样,您就可以从文本编辑器里复制一段脚本并且把它粘贴到Windows PowerShell里来运行。复制剪贴板上的代码。在DOS命令提示符下,您不能使用Ctrl-V进行粘贴文本。同样,在Windows PowerShell的窗口中,您也要找到左上方的蓝条,选择“编辑”---“粘贴”选项。粘贴完成后,敲入“回车键”,得到的结果和您手动的一个个敲入那些脚本代码到您的电脑上没什么两样。

  与VBScript语言不同,在Windows PowerShell中您可以在保存整个代码之前,就对您写的代码进行测试。而VBScript不会让您那样的边写脚本边测试脚本的。

  运行一个从前保存过的脚本,只要打开PowerShell,并且输入它的路径就可以了。例如下面就是一个例子,有关于如何用保存过的脚本停止VMWare相关的服务。(我喜欢把我的脚本按照其功能分类,这样当要使用时,我可以轻易的找到我所需要的脚本。)您不需要输入扩展名.psl,直接输入命令行就可以了。c:scriptsservicesvmwarestop.ps1

  当您已经在此目录的情况下,您就只输入能找到下面路径所需的字符就可以了。例如,当前目录已经在c:scripts,那么只要再输入.servicesvmwarestop.就可以了。

  编辑Windows PowerShell的设置来使保存的脚本运行

  正如您所知,事情并没有想象的那样容易就搞定了。

  如果您只是按照上面所说的步骤操作的话,您会发现此命令并没有运行成功。假设,您是第一次在这个电脑上运行一个从前已保存的脚本的话,当您输入了这个命令后,系统会提示这样的错误信息:

  此系统执行脚本的功能已经被禁止,所以不能正确加载C:scriptsservicesvmwarestop.ps1文件。请查阅“关于签名的帮助”来获得更多信息。

  简而言之,这是因为Windows PowerShell在默认状态下,执行已保存过的脚本是受限的。一个带有签名的命令或者命令行是含有发行人的证书认证的,因此,您也就不用担心它的安全性和原始性。在这一点上,不象VBS 脚本那样,不管您愿意不愿意它就运行了,结果得到的却是带有下划线的ILOVEYOU病毒。

  想查看您的当前设置,输入get-executionpolicy。之后Windows PowerShell会给出解答,它支持4种执行规则:

运行规则
描述
受限
单个命令可以运行,以前保存过的脚本不能运行。这个也是默认设置。
全部签名
即使是在本地的电脑上,也必须是带有数字签名的脚本才能运行。运行脚本前,系统会提示谁是可信任发行者。
远程签名
在本地电脑上的脚本不需要数字签名,但来自外面下载的脚本,例如邮件,即时消息和Internet上的脚本,必须拥有数字签名才能运行。
不受限
从外部下载的任何脚本都可以运行,只不过运行前要发出一个警告。
  说明:数字签名并不能保证一个脚本是善意的或是无危险的。数字签名只是表明某个人在脚本上签上John Hancock这样的数字签名,并且您相信John Hancock带有这个签名的脚本。

  您可以从注册表或者PowerShell里改变运行规则。如果想从Windows的注册表里修改,找到HKLMSOFTWAREMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell一项。许多文档说,在这里可以看见“运行规则值”,但是我并没有看见。如果真的是在那的话,把它编辑成“远程签名”或者是其它适合的就可以了。如果您在那也没有发现的话,那么就创建一个新的扩展字符串,并赋予其适当的值。再回到Windows PowerShell,查看运行规则,您会发现当前的规则已经变成您刚刚设置过的规则了。

  如果您精通语法,那么在PowerShell里改变运行规则就显得格外简单了。若想查看当前的规则,输入get-executionpolicy就可以了。同样,若想改变规则设置,就输入set-executionpolicy和要改变成的规则的名字就可以了。 (例如输入set-executionpolicy Unrestricted,就把当前的规则变成了不受限类型)直到下次再改变规则前,规则就不变了。(很明显,您需要从PowerShell改变规则,而不是做为脚本的一部分。)如果您把规则改成“远程签名”的话,直到您收到了邮寄过来的签名认证的时候,您才能运行您的脚本。这比起“不受限”来,是要安全多了。

  不管您使用那种方法来更改规则,您所创建脚本现在已经可以准备运行了。

      此文章中文版权归TechTarget和天极公司所共有,任何第三方不得转载。!!

      原文链接:http://searchwincomputing.techtarget.com/generic/0,295582,sid68_gci1260091,00.html

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i