第1-3章-1背景知识-2初识PowerShell-3使用帮助系统
第1章 背景介绍
1.5 搭建自己的实验环境
进入PowerShell控制台,输入$PSVersionTable,然后按回车键。可以查看当前安装的PowerShell版本。
如果想要检查最新的PowerShell可用版本或下载PowerShell,请访问http://msdn.microsoft.com/powershell。该官方PowerShell主页有一个指向最新版本的Windows管理框架(WMF)安装包的连接,该安装包用于安装PowerShell与其相关功能。
第2章 初识PowerShell
2.1 选择你的“武器”
- Windows PowerShell--控制台
- Windows PowerShell ISE--图形化控制台
2.1.1 控制台窗口
可以通过单击窗体左上角的图标,并选择【属性】配置控制台。
2.1.2 集成脚本环境(ISE)
提示:如果你不经意打开了标准控制台应用程序,可以输入“ise"并按回车键,从而打开ISE。
ISE窗口分为3个主要区域,脚本编辑窗格、命令管理器、控制台空格。
2.2 重新认识代码输入
控制台应用程序支持4种”Tab键补全“。
- 输入"Get-S",然后按几下Tab键,再按Shift+Tab组合键,PowerShell会循环地显示以Get+S开头的所有命令。
- 输入"Dir",按空格键,然后输入"C:",再按Tab键,PowerShell会从当前文件夹开始循环遍历所有可用的文件和文件夹名。
- 输入"Set-Execu",再按Tab键,然后再输入一个空格和横杠(-),再开始按Tab键,可以看到PowerShell循环显示当前命令的所有可用参数。按esc可以清空命令行。
- 再次输入"Set-Execu",按Tab键,再按空格键,然后输入"-E",再次按Tab键,然后再按一次空格键,再按Tab键。PowerShell会循环显示关于这些参数的合法值。按esc键同样可以清空命令行。
PowerShell提供了类似功能,甚至可以说比"Tab键"功能更好的功能:智能提示。该功能在上面提到的4种场景下都能运行。
针对PowerShell v3或更新版本,有一种简单的方式检查版本。输入"$PSVersionTable"并按回车键。
第3章 使用帮助系统
3.1 帮助系统:发现命令的方法
- 帮助系统可以帮助你找到某个命令,而无需使用Google或者Bing。
- 如果你在运行一个命令的时候返回错误信息,帮助系统就可以告诉你如何正确运行命令,因此不再出现错误。
- 如果你想将多个命令组合在一起来执行一项复杂的任务,帮助系统就可以帮你找到哪些命令是可以和其他命令结合使用。
3.2 可更新的帮助
提示:一个容易忽略的事实是通常本地并没有安装帮助
更新PowerShell的帮助文档应该是你的首要任务。这些文件存储在System32目录下,这意味着你必须在管理员特权下运行。
update-help
3.3 查看帮助
Windows的PowerShell提供了Get-Help这个Cmdlet命令访问帮助系统。你可能看到很多示例都是使用"Help"或"Man"关键字来代替Get-Help。Man和Help都不是原生的Cmdlet命令,而是对核心Cmdlet命令进行封装后的函数。
3.4 使用帮助系统查找命令
Get-Help(等同于Help)有几个参数。其中一个最为重要的参数是-Name。该参数指定你想要访问帮助的主题名称,并且它是一个位置参数,所以你无需输入-Name,只需提供所需查找的命令名称。它也支持通配符,这让帮助系统更加容易查找到命令。
例如,你想操作系统事件日志,但是你却不知道使用哪个命令,你决定搜索包含事件日志的帮助主题,可以运行下面两个命令中的一个。
Help log
Help event
许多关于事件日志的函数,它们都基于”动词-名词“这个命名格式,但是最后出现了两个关于帮助主题的特殊Cmdlets却不是这种格式。
当发现一个Cmdlet有可能完成所需完成的工作的时,可以查看该帮助文档进行确认。
3.5 帮助详解
3.5.1 参数集和通用参数
大部分命令可以有多种使用方式,这依赖于你需要用它们来做什么。
命令在语法中出现两次或多次,表示这个命令提供了两个或多个不同的参数集。如果你使用一个只包含在某个参数集中的参数,那么你就只能使用同一个参数集里的其他参数。
3.5.2 可选和必选参数
PowerShell的帮助文档把可选参数放在一个方括号中。例如\[-ComputerName <string[]>]
表示整个 -ComputerName参数是可选的。你可以不使用该参数,因为在没有为该参数指定一个具体值的时候,Cmdlet会默认为本地计算机。
3.5.3 位置参数
通常来说,位置参数是具有位置性的。这意味着你只要把参数值放在正确的位置,你就可以只提供这个参数值,而不需要输入具体的参数名。
有两种方法可以用于 确定位置参数:通过语法概要或者通过详细的帮助文档。
你可以在语法概要中找到第一种方式:只有参数名被方括号括起来的参数。比如,查看Get-EventLog的第二个参数集的前两个参数。
[-LogName] <string> [[-InstanceId] <Int64>]
第一参数:-LogName,它是必选参数。因为它的参数名称和参数值不在一个方括号里面。
第二个参数:-InstanceId。它是可选的,因为它的参数名称与参数值位于同一个方括号内。在方括号内,-InstanceId本身又处在一个方括号里,意味着它同时还是一个位置参数。它出现在第二个位置,所以我们省略这个参数名称,就必须在该位置提供一个参数值。
第二种方式需要你使用Help命令指定-full参数来打开帮助文档。
3.5.4 参数值
帮助文档同样给你提供了每个参数的数据类型。有些参数被称为开关参数,无需任何输入值。在缩写语法中它们看起来如下所示。
[AsString]
在详细语法中,它们看起来如下所示。
-AsString [<SwitchParameter>] 以字符串而非对象的形式返回输出。
下面看看通常的输入类型。
- String——一系列字母和数字,有时也会包含空格
- Int、Int32或Int64——整数类型
- DateTime——日期时间
你也许注意到有些值包含多个方括号:
[-ComputerName <string[]>]
string后面的方括号,并不意味着某些东西是可选的。事实上,String[]意味着该参数可以接受数组、集合,或者是一个列表类型的字符串。指定多个值,一个简单的方式是提供一个以逗号为分隔符的列表。PowerShell把以逗号为分隔符的列表作为数组值对待。
另外一种提供列表值的方式是把它们输入到一个文本文件中,第一个值一行。例如:
Server-R2
Files02
Files03
DC04
DC03
使用圆括号把命令括起来,就强制这些命令先执行。
Get-Event application -computer (Get-Content names.txt)
3.5.5 发现命令示例
Help Get-EventLog -example
3.6 访问”关于“主题
PowerShell的帮助系统包含许多背景主题,可以用来帮助定位指定的Cmdlet命令。它些背景主题通常被称为”关于“主题,因为它们都是以"about"开头的。你可能还记得在本章的前面,所有的Cmdlet命令都提供一个通用参数集。怎样才能更多了解这些常见的参数?
先使用通配符。
Help *common*
这真是一个好的关键字。事实上,这只会在帮助主题中匹配到一条记录:About_common_parameters。该主题将会自动显示,因为只有唯一一条配置的主题。浏览显示的帮助主题,你会发现如下8个通用参数。
- -Verbose
- -Debug
- -WarningAction
- -WarningVariable
- -ErrorVariable
- -OutVariable
- -OutBuffer
3.7 访问在线帮助
PowerShell Help命令的-online参数,使用它可以在网络中找到你所想要的帮助信息:
Help Get-EventLog -online