




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
易学易用的易学易用的 Windows PowerShell Windows PowerShell 是微软为 Windows 环境所开发的 shell 及脚本语言技术 这项全 新的技术提供了丰富的控制与自动化的系统管理能力 而 脚本语言 scripting languages 则是用来编写程序的计算机语言 脚本语言通常都有简单 易学 易用的特性 目的就是希望能 让写程序的人 开发者 快速完成程序的编写工作 本文将简述脚本语言的起源与目的 并且介 绍 Windows PowerShell 脚本语言的源起与目的脚本语言的源起与目的 脚本语言是计算机程序语言 programming languages 的一种 因此也能让开发者藉以 编写出让计算机听命行事的程序 但是 以简单的方式快速完成某些复杂的事情 通常是创造脚 本语言的重要原则 基于这项原则 使得脚本语言通常比 C C 或 Java 之类的 系统程序 语言 system programming languages 简单 容易 也让脚本语言另有一些所 谓 脚本语言的特性 语法和结构通常比较简单 学习和使用通常比较简单 通常以容易修改程序的 直译 作为执行方式 而不需要编译 程序的开发产能优于执行效能 脚本语言源自早期文字模式的命令列计算机系统 在当时只能以键盘敲入命令才能操作计算 机的情况下 为了减少某些需要不断重复敲入命令的情况 计算机操作系统的命令处理器 在 UNIX 的世界这通常称为 command shell 提供了 批次操作 batch operation 的方式 让计算机操作者可以将一整个流程的命令 循序 逐行的编排在称为 批处理 batch file 也称为 batch jobs 或 shell scripts 的文字文件 若有相同的操作需要处理 即可加载批次 档而不需再次重复敲入指令 Shell Script 由于批处理对命令列的计算机系统操作者帮助甚大 因此操作系统的命令处理器也不断加强 功能 尤其加入了许多程序语言的重要元素 包括变量 循环 条件判断等等 让计算机操作不 只是循序的执行命令 而能更精确的操控计算机系统的运作 这种程序设计通常称为 shell programming 因此 不论是大型主机的系统操作员 或者是整个计算机环境的系统管理员 网络管理员 shell programming 都是相当重要的技能 这项技能可以有效且快速的管理辖下 的计算机 UNIX 系统的 shell 相当多样 例如 Bourne Shell sh Bourne Again Shell bash Korn Shell ksh C Shell csh 等等 以下简述常见的 UNIXshell Bourne Shell sh 这是历史悠久且重要的 UNIX shell 是由贝尔实验室的研究员 Stephen Bourne 为第七版的 UNIX 所创造 这种 shell 的执行档扩展名就是 sh Bourne Again Shell bash 光从名称就能猜出 bash 与 sh 是有渊源 甚至说 血缘 bash 是由 Brian Fox 于 1987 年为 GNU 所创造 1990 年起 Chet Ramey 成为主 要的维护者 bash 是相当流行的 shell 除了是大多数 Linux 预设的 shell 在许多 UNIX like 系统也有其踪迹 例如 Mac OS X Tiger 甚至也能通过 Cygwin 在 Windows 系统执 行 Korn Shell ksh 是由贝尔实验室的研究员 David Korn 在 80 年代初期所创造 ksh 除了与 sh 完全兼容 也包含了若干 C Shell 的功能 C Shell csh 是由 Bill Joy 后来创办了 Sun 公司 为 BSD UNIX 系统所创造 csh 源自于第六版 UNIX 的 Thompson shell 是 Bourne Shell 的前身 因为语法类似 C 语 言而得名 除了上述盛行于 UNIX 环境的 shell 其它操作系统也有专属的 shell 或 shell 脚本语言 例如苹果 Mac 系统的 AppleScript IBM OS 2 的 REXX REstructured eXtended eXecutor 而 DOS 以及早期 Windows 的 shell 则是 C 但也因功能较弱 因此有 4DOS 4NT 等软件可增强功能 Windows 2000 以及之后的 Windows 则改以功能 较强 cmd exe 作为 Windows shell 并且以 Windows Script Host 作为脚本语言执行环境 大幅提高了 Windows shell 的可用性 而微软也将会推出功能更强的 Windows shell 称为 Windows PowerShell 虽然现在许多计算机系统都提供了图形化的操作方式 但是却都没有因而停止提供文字模式 的命令列操作方式 相反的 许多系统反而更加强这部份的功能 例如 Windows 就不只加强了 操作命令的功能和数量 也一直在改善 shell programming 的方式 而之所以要加强 改善 当然是因为不够好 Windows 的图形化操作方式对单一客户端计算机的操作 已经相当方便 但如果是一群客户端计算机 或者是 24 小时运作的服务器计算机 图形化操作方式有时会很不 方便 宏语言宏语言 宏语言也可视为脚本语言的分支 两者也实质上的相同之处 宏语言通常附属于某一种软件 例如微软 Office Visual Studio Adobe Photoshop 都内建了宏语言的功能 使用者可利用 软件所附的宏语言 达到自动化的结果 例如调整某个数据夹所有 PSD 图文件的分辨率 而 这类宏语言也大多提供录制宏的功能 自动记录使用者的键盘按键 让使用者不必写程序 就能 产生宏程序 此外 C 语言和汇编语言也有宏功能 是以搜寻及取代进行编译或组译之前的前置 处理 Windows PowerShell 诞生诞生 UNIX 的世界有功能强大的 shell 现在 Windows 环境也有了 Windows PowerShell 不仅提供功能相当于 BASH 的命令列 shell 同时也内建脚本语言以及辅助脚本程序的工具 Windows PowerShell 是以 NET 技术为基础 并且与现有的 WSH 保持回溯兼容 因此 Windows PowerShell 的脚本程序不仅能存取 NET CLR 也能使用现有的 COM 技术 Windows PowerShell 包含了数种系统管理工具 简易且一致的语法 提升管理者处理常 见如登录数据库 WMI Exchange Server 2007 以及 System Center Operations Manager 2007 等服务器软件都将内建 Windows PowerShell Monad 是 Windows PowerShell 之前的项目代号 Microsoft Shell MSH 则是另一 个别名 简而言之 Windows PowerShell 具有以下特点 一致性的设计让所有工具和系统数据的使用语法 命名原则都相同 Windows PowerShell 的脚本语言不仅简单易学 而且能支持现有的脚本程序和命令列工 具 内含 129 种称为 cmdlet 的标准工具 可用来处理常见的系统管理工作 例如登录数据库 系统服务 形成 WMI 事件日志等等 具备完整的扩充功能 独立软件商或开发者都能很容易的自行扩充 下载 安装 执行下载 安装 执行 Windows PowerShell Windows PowerShell 可安装于 Windows XP 以及之后的客户端或服务器端 Windows 操作系统 包括 客户端 Windows XP Windows XP Service Pack 1 Windows XP Service Pack 2 Windows Vista 服务端 Windows Server 2003 Windows Server 2003 R2 Windows Server 2003 Service Pack 1 而 Windows PowerShell 除了有 32 位版本 也还有 x64 和 ia64 等两个 64 位版本 可以安装在这两种 64 位 Windows 平台 此外 由于执行 Windows PowerShell 需要 NET Framework 2 0 因此请先替计算机安装 NET Framework 2 0 安装之后 可以利用以下三种方式执行 Windows PowerShell 位于 开始 所有程序 的 Windows PowerShell 快捷方式 在 开始 运行 的 运行 命令窗输入 powershell 在任何 命令提示字符 窗口的命令提示符号输入 powershell Windows PowerShell 窗口看起来类似原本的 命令提示字符 窗口 而我通常也都会调 整窗口和字型的大小 以方便作业 初探初探 Windows PowerShell 任何 shell 都有列出目录 文件的命令 Windows PowerShell 呢 先输入 DOS 的 dir 试试吧 图 1 dir 指令执行结果 嗯 dir 果然也通 但是列示的方式不同于以往的 dir 指令 一时兴起 我输入了 UNIX 的 ls 指令 窗口显示了与 dir 指令相同的结果 真有趣 这时候我尚未阅读任何 Windows PowerShell 文件 只是很直觉输入指令 Windows PowerShell 指令指令 cmdlet 是 Windows PowerShell 的指令 这相当于 DOS 或其它 shell 的内建指令 但是刚刚输入的 dir 或 ls 并不是 cmdlet 这稍后将会说明 cmdlet 的发音方式是 command let cmdlet 名称的格式都是以连字符号隔开的一对动词和名词 并且通常都是单数 名词 例如可以在线查询 cmdlet 用法的 cmdlet 即为 get help cmdlet 名称的动词部分大 致有 get set add remove 等等 Windows PowerShell 的操作与 DOS 相同 输入的 字母都不分大小写 get help 是颇为重要的 cmdlet 可以在线查询所有的 Windows PowerShell 指令和说 明文件 例如 get help 列出所有的主题 包括指令和概念 get help more 列出所有的主题 包括指令和概念 而且显示满整个窗口就暂停 get help about 列出所有的概念主题 例如万元字符 foreach 循环 get help get 列出所有 get 开头的主题 get help 列出指定的指令或主题的说明 例如 get help dir 可以查询 dir 指令的用法 而 get help about wildcard 可以查询 万用字符 这项主题的用 法 此外 也可以用 help 取代 get help 最大的好处是 help 显示满整个窗口 预设就会自 动暂停 一开始曾经使用了 dir 和 ls 虽然这并不是 cmdlet 但的确可用于 Windows PowerShell 原来这类的指令称为 alias 化名 类似 cmdlet 的快捷方式 例如 dir 和 ls 实际上都是 get ChildItem 的 alias get ChildItem 才是 cmdlet 而 get ChildItem 的 功能 是列出磁盘驱动器指定位置的子项目 Windows PowerShell 的指令包含了许多内建的 alias 这些 alias 都是我们原本熟悉的 DOS 或 shell 指令 除了上述的 dir 和 ls 例如原本 DOS 指令的 rm rmdir rd cls copy 等 以及 BASH 的 cat sleep clear cp 等 都是 Windows PowerShell 的 alias 也就是说 可以直接使用这些 alias 若要列出所有的 alias 可以用 get alias 指令 除了使用内建的 alias Windows PowerShell 也允许使用者 以 set alias 建立自己的 alias 除了 cmdlet 和 alias Windows PowerShell 的指令还有 Application 和 Function 两种类型 前者指的是独立的程序文件 在 DOS 时代称为外部指令 后者是有名称的程序代 码区块 也就是函式 不论 Application 或 Function 都可以当作 Windows PowerShell 指 令来用 也可以用在脚本程序里 利用 get command 可以列出所有的指令 Windows PowerShell 的管线功能的管线功能 DOS 或 UNIX shell 都能利用 管线符号 pipeline symbol 将指令的执行结果移 转到另一个指令 让另一个指令处理前一个指令转来的数据 Windows PowerShell 的管线符 号也是 例如之前用过的 get help more 就是将 get help 的结果转给 more 而 more 会让结果显示满整个窗口就暂停 管线是各种 shell 环境的 黏合 最佳例证 例如管线就黏合了 Windows PowerShell 的 各个指令 进而让各个指令完成一件工作 再举几个管线的例子 首先是 ipconfig findstr Address 被管线黏合的 ipconfig 和 findstr 都是 Win32 既有的外部指令 前者会显示 设定计算 机的 IP 地址 后者则能以各种方式找出特定字符串 以上的叙述是将 ipconfig 的执行结果转 给 findstr 并让 findstr 找出执行结果的 Address 字符串 图 2 ipconfig findstr Address 执行结果 再举两个例子 以下的叙述会列出已停止的系统服务 但是由 get service 和 where object 相互协力完成 前者列出所有的系统服务 后者过滤出状态为 Stopped 的系统服务 get service where object Status eq Stopped 但以上叙述的结果会以系统服务的名称作为排列方式 若想以系统服务的 显示名称 依序 排列 可以再加上 sort object 并也以管线黏合 get service where object Status eq Stopped sort object property DisplayName 图 3 三重管线范例的执行结果 新的脚本语言新的脚本语言 微软为 Windows PowerShell 创造了新的脚本语言 但若你熟悉任何一种脚本语言 你也 能很快熟悉 Windows PowerShell 的脚本语言 基本上 只要将 Windows PowerShell 的 指令放进扩展名为 ps1 的文字文件 这个文件就是 Windows PowerShell 的脚本程序了 因 此在熟悉了 Windows PowerShell 的命令操作之后 只要再熟悉 Windows PowerShell 脚 本语言的变量 数组 循环控制 条件控制 大致上就语言的部分就差不多 但若要以脚本程序 管理 Windows 系统 除了要熟悉脚本语言 当然也必须熟悉 Windows PowerShell 指令和 WMI 毕竟脚本语言的目的只是黏合这些现成的软件组件 执行脚本程序还有几点注意事项 首先要确定脚本程序所在的位置是在执行路径里 再者 由于 Windows PowerShell 顾虑到安全性 预设是禁止计算机系统执行任何脚本程序 如果要 解禁 必须利用 Set ExecutionPolicy 指令 这个指令有三个参数 set executionpolicy allsigned 允许执行具有信任签章的脚本程序 set executionpolicy remotesigned 仅允许执行从远程下载且具有信任签章的脚本程序 set executionpolicy unrestricted 这是最宽松的条件 允许执行任何脚本程序 不管有 没有信任签章 但自己编写的脚本程序通常都没有信任签章 善用脚本语言善用脚本语言 从近十年的程序语言发展趋势 能明显发现脚本语言的发展比系统程序语言更多样 更活络 开发者的接受程度也高 当然 这两种类型的程序语言 各有适用之处 没有谁取代谁的问题 而是如何选择适当的方法来完成工作 John K Ousterhout Tcl Tk 的创造者 曾在 Scripting Higher Level Programming for the 21st Century 一文提出他的看法 他认为 脚本语言的主要目的 是在 黏合 g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江金华智园至尚资产经营有限公司招聘17人笔试参考题库附带答案详解
- 2025济钢集团有限公司校园招聘(48人)笔试参考题库附带答案详解
- 2025江西新鸿人力资源服务有限公司招募见习人员3人笔试参考题库附带答案详解
- 2025新疆兵团金融发展服务中心招聘事业单位工作人员(1人)笔试历年参考题库附带答案详解
- 2025年浙江金华市轨道交通集团运营有限公司第一批招考4人笔试参考题库附带答案详解
- 2025年国网中兴有限公司高校毕业生招聘(第二批)调剂笔试参考题库附带答案详解
- 2025山东中胶阿胶有限公司招聘19人笔试参考题库附带答案详解
- 2025四川自贡华荟文化产业发展有限公司招聘3人笔试参考题库附带答案详解
- 2025中国华冶科工集团有限公司校园招聘280人笔试参考题库附带答案详解
- 地铁工程安全培训内容课件
- 网站信息发布审核制度
- 财务公司有价证券投资管理办法
- 鼻内翻性乳头状瘤
- 2022版义务教育《体育与健康课程标准》测试题-含答案
- GB/T 8167-1987包装用缓冲材料动态压缩试验方法
- GB/T 34903.2-2017石油、石化与天然气工业与油气开采相关介质接触的非金属材料第2部分:弹性体
- 覆岩离层注浆减沉技术研究的新进展课件
- 折纸校本课程纲要
- 新汉语水平考试 HSK(四级)
- 职业院校人才培养工作状态数据采集与管理制度
- T∕CGMA 033001-2018 压缩空气站能效分级指南
评论
0/150
提交评论