PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
前些文章陆续的说了一些关于这些主题,但是讨论的都不够深入,今天我们深入的了解一下获取帮助信息、管道以及格式化输出的内容。
一、获取帮助信息
在PS中获取帮助信息,最常用的有: -? 、get-command和get-help。这三者获取的信息不是完全一致的,并且由于get-command和get-help是cmdlet;因此具有很多实用
的参数来帮助我们获取我们想要的信息。
1、1 -? 参数
如果我们知道某个cmdlet的拼写,但是不知道他的用户,那么最快速的方法就是用:-? 参数。 例如:我们知道copy-item 这个cmdlet,但是不知道怎么使用它,那么我们可以通过
-? 参数来获取相关帮助。
Exp:

- PS C:\Users\vol_20120330> copy-item -?
- 名称
- Copy-Item
- 摘要
- 将项从一个位置复制到命名空间内的另一个位置。
- 语法
- Copy-Item [-LiteralPath] <string[]> [[-Destination] <string>] [-Container]
- [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-For
- ce] [-Include <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-Use
- Transaction] [<CommonParameters>]
- Copy-Item [-Path] <string[]> [[-Destination] <string>] [-Container] [-Crede
- ntial <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-I
- nclude <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-UseTransac
- tion] [<CommonParameters>]
- 说明
- Copy-Item cmdlet 将项从一个位置复制到命名空间中的另一个位置。Copy-Item 不会删除所复制的项。该 cmdlet 可复制的特定项
- 取决于可用的 Windows PowerShell 提供程序。例如,与 FileSystem 提供程序一起使用时,它可以复制文件和目录;与 Regis
- try 提供程序一起使用时,它可以复制注册表项。
- 相关链接
- Online version: http://go.microsoft.com/fwlink/?LinkID=113292
- about_Providers
- Clear-Item
- Get-Item
- Invoke-Item
- Move-Item
- Set-Item
- New-Item
- Remove-Item
- Rename-Item
- 备注
- 若要查看示例,请键入: "get-help Copy-Item -examples".
- 有关详细信息,请键入: "get-help Copy-Item -detailed".
- 若要获取技术信息,请键入: "get-help Copy-Item -full".

这样我们就可以获取相关的帮助信息,这里获取的信息比较有限,对参数没有进行具体的解释,一般使用于初步了解某个cmdlet。
1、2 获取命令的概要/摘要信息
在PS中我们通过cmdlet get-command 来获取命令的摘要信息。get-command有很多的参数可以使用。如下所示:
Exp:

- PS C:\Users\vol_20120330> get-help get-command -parameter *
- -ArgumentList <Object[]>
- 获取 cmdlet 或函数在与指定的参数(如 path)一起使用时的信息。ArgumentList 的别名为 Args。
- 要检测在 cmdlet 与特定的提供程序一起使用时添加到 cmdlet 中的参数,请将 ArgumentList 的值设置为提供程序驱动器中的一条路径
- ,如“HKML\Software”或“cert:\my”。
- 是否必需? False
- 位置? 2
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -CommandType <CommandTypes>
- 只获取指定类型的命令。使用“CommandType”或它的别名“Type”。默认情况下,Get-Command 获取 cmdlet 和函数。
- 有效值包括:
- -- Alias:当前会话中的所有 Windows PowerShell 别名。
- -- All:所有命令类型。它与“get-command *”等效。
- -- Application:位于 Path 环境变量 ($env:path) 所列路径中的所有非 Windows-PowerShell 文件,例如
- .txt、.exe 和 .dll 文件。
- -- Cmdlet:当前会话中的 cmdlet。默认值为“Cmdlet”。
- -- ExternalScript:位于 Path 环境变量 ($env:path) 所列路径中的全部 .ps1 文件。
- -- Filter and Function:所有 Windows PowerShell 函数。
- -- Script:当前会话中的脚本块。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? true (ByPropertyName)
- 是否接受通配符? False
- -Module <string[]>
- 获取源自指定模块或管理单元的命令。输入模块或管理单元的名称,或输入管理单元或模块对象。
- 可以使用此参数的名称 Module 或其别名 PSSnapin 对其进行引用。选择的参数名称不会影响到命令或命令的输出。
- 此参数接受字符串值,但您也可以提供 PSModuleInfo 或 PSSnapinInfo 对象(如 Get-Module、Get-PSSnapin
- 和 Import-PSSession 返回的对象)。
- 是否必需? False
- 位置? named
- 默认值 无
- 是否接受管道输入? true (ByPropertyName)
- 是否接受通配符? False
- -Name <string[]>
- 只获取具有指定名称的 cmdlet 或命令元素的相关信息。<字符串> 表示 cmdlet 或命令元素的名称的全部或一部分。允许使用通配符。
- 要按执行顺序列出具有相同名称的命令,请键入不含通配符的命令名称。有关详细信息,请参阅“注释”部分。
- 是否必需? False
- 位置? 1
- 默认值
- 是否接受管道输入? true (ByValue, ByPropertyName)
- 是否接受通配符? False
- -Noun <string[]>
- 获取名称包含指定名词的 cmdlet 和函数。<字符串> 表示一个或多个名词或名词模式,例如,“process”或“*item*”。允许使用通配符。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? true (ByPropertyName)
- 是否接受通配符? False
- -Syntax [<SwitchParameter>]
- 只获取有关命令元素的指定数据。
- * 对于别名,检索标准名称。
- * 对于 cmdlet,检索语法。
- * 对于函数和筛选器,检索函数定义。
- * 对于脚本和应用程序(文件),检索路径和文件名。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? true (ByPropertyName)
- 是否接受通配符? False
- -TotalCount <int>
- 只获取指定数量的命令元素。可使用此参数限制命令的输出。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? true (ByPropertyName)
- 是否接受通配符? False
- -Verb <string[]>
- 获取名称包含指定动词的 cmdlet 和函数的信息。<字符串> 表示一个或多个动词或动词模式,例如,“remove”或“*et”。允许使用通配符。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? true (ByPropertyName)
- 是否接受通配符? False

通过上面的信息我们知道get-command支持以下一些参数:noun、 verb、syntax、name、commandtype、totalcount等; 其中用的比较多的是前面5个。
例如我们可以利用下面的形式查询cmdlet。
get-command -noun item
Exp:

- PS C:\Users\vol_20120330> get-command -noun item
- CommandType Name Definition
- ----------- ---- ----------
- Cmdlet Clear-Item Clear-Item [-Path] <String[]...
- Cmdlet Copy-Item Copy-Item [-Path] <String[]>...
- Cmdlet Get-Item Get-Item [-Path] <String[]> ...
- Cmdlet Invoke-Item Invoke-Item [-Path] <String[...
- Cmdlet Move-Item Move-Item [-Path] <String[]>...
- Cmdlet New-Item New-Item [-Path] <String[]> ...
- Cmdlet Remove-Item Remove-Item [-Path] <String[...
- Cmdlet Rename-Item Rename-Item [-Path] <String>...
- Cmdlet Set-Item Set-Item [-Path] <String[]> ...

可以利用-verb参数查询具有某个动词的cmdlet; 如利用下面的命令获取具有copy这个动词的cmdlet。
get-command -verb copy
Exp:
- PS C:\Users\vol_20120330> get-command -verb copy
- CommandType Name Definition
- ----------- ---- ----------
- Cmdlet Copy-Item Copy-Item [-Path] <String[]>...
- Cmdlet Copy-ItemProperty Copy-ItemProperty [-Path] <S...
利用syntax参数获取某个命令的语法,例如利用以下的命令获取set-location的语法
get-command -syntax set-location
Exp:

- PS C:\Users\vol_20120330> get-command -syntax set-location
- Set-Location [[-Path] <String>] [-PassThru] [-Verbose] [-Debug] [-ErrorAction <
- ActionPreference>] [-WarningAction <ActionPreference>] [-ErrorVariable <String>
- ] [-WarningVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-Us
- eTransaction]
- Set-Location [-LiteralPath] <String> [-PassThru] [-Verbose] [-Debug] [-ErrorAct
- ion <ActionPreference>] [-WarningAction <ActionPreference>] [-ErrorVariable <St
- ring>] [-WarningVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>]
- [-UseTransaction]
- Set-Location [-PassThru] [-StackName <String>] [-Verbose] [-Debug] [-ErrorActio
- n <ActionPreference>] [-WarningAction <ActionPreference>] [-ErrorVariable <Stri
- ng>] [-WarningVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [
- -UseTransaction]

利用commandtype来查询特定类型的cmdlet。 例如我们利用下面的命令获取PS中支持的别名。
get-command -commandtype alias #这个命令相当于 get-alias 命令
Exp:

- PS C:\Users\vol_20120330> get-command -commandtype alias
- CommandType Name Definition
- ----------- ---- ----------
- Alias % ForEach-Object
- Alias ? Where-Object
- Alias ac Add-Content
- Alias asnp Add-PSSnapIn
- Alias cat Get-Content
- Alias cd Set-Location
- Alias chdir Set-Location
- Alias clc Clear-Content
- Alias clear Clear-Host
- Alias clhy Clear-History
- Alias cli Clear-Item
- Alias clp Clear-ItemProperty
- Alias cls Clear-Host
- Alias clv Clear-Variable
- Alias compare Compare-Object
- Alias copy Copy-Item
- Alias cp Copy-Item
- Alias cpi Copy-Item
- Alias cpp Copy-ItemProperty
- Alias cvpa Convert-Path
- Alias dbp Disable-PSBreakpoint
- Alias del Remove-Item
- Alias diff Compare-Object
- Alias dir Get-ChildItem
- Alias ebp Enable-PSBreakpoint
- Alias echo Write-Output
- Alias epal Export-Alias
- Alias epcsv Export-Csv
- Alias epsn Export-PSSession
- Alias erase Remove-Item
- Alias etsn Enter-PSSession
- Alias exsn Exit-PSSession
- Alias fc Format-Custom
- Alias fl Format-List
- Alias foreach ForEach-Object
- Alias ft Format-Table
- Alias fw Format-Wide
- Alias gal Get-Alias
- Alias gbp Get-PSBreakpoint
- Alias gc Get-Content
- Alias gci Get-ChildItem
- Alias gcm Get-Command
- Alias gcs Get-PSCallStack
- Alias gdr Get-PSDrive
- Alias ghy Get-History
- Alias gi Get-Item
- Alias gjb Get-Job
- Alias gl Get-Location
- Alias gm Get-Member
- Alias gmo Get-Module
- Alias gp Get-ItemProperty
- Alias gps Get-Process
- Alias group Group-Object
- Alias gsn Get-PSSession
- Alias gsnp Get-PSSnapIn
- Alias gsv Get-Service
- Alias gu Get-Unique
- Alias gv Get-Variable
- Alias gwmi Get-WmiObject
- Alias h Get-History
- Alias history Get-History
- Alias icm Invoke-Command
- Alias iex Invoke-Expression
- Alias ihy Invoke-History
- Alias ii Invoke-Item
- Alias ipal Import-Alias
- Alias ipcsv Import-Csv
- Alias ipmo Import-Module
- Alias ipsn Import-PSSession
- Alias ise powershell_ise.exe
- Alias iwmi Invoke-WMIMethod
- Alias kill Stop-Process
- Alias lp Out-Printer
- Alias ls Get-ChildItem
- Alias man help
- Alias md mkdir
- Alias measure Measure-Object
- Alias mi Move-Item
- Alias mount New-PSDrive
- Alias move Move-Item
- Alias mp Move-ItemProperty
- Alias mv Move-Item
- Alias nal New-Alias
- Alias ndr New-PSDrive
- Alias ni New-Item
- Alias nmo New-Module
- Alias nsn New-PSSession
- Alias nv New-Variable
- Alias ogv Out-GridView
- Alias oh Out-Host
- Alias popd Pop-Location
- Alias ps Get-Process
- Alias pushd Push-Location
- Alias pwd Get-Location
- Alias r Invoke-History
- Alias rbp Remove-PSBreakpoint
- Alias rcjb Receive-Job
- Alias rd Remove-Item
- Alias rdr Remove-PSDrive
- Alias ren Rename-Item
- Alias ri Remove-Item
- Alias rjb Remove-Job
- Alias rm Remove-Item
- Alias rmdir Remove-Item
- Alias rmo Remove-Module
- Alias rni Rename-Item
- Alias rnp Rename-ItemProperty
- Alias rp Remove-ItemProperty
- Alias rsn Remove-PSSession
- Alias rsnp Remove-PSSnapin
- Alias rv Remove-Variable
- Alias rvpa Resolve-Path
- Alias rwmi Remove-WMIObject
- Alias sajb Start-Job
- Alias sal Set-Alias
- Alias saps Start-Process
- Alias sasv Start-Service
- Alias sbp Set-PSBreakpoint
- Alias sc Set-Content
- Alias select Select-Object
- Alias set Set-Variable
- Alias si Set-Item
- Alias sl Set-Location
- Alias sleep Start-Sleep
- Alias sort Sort-Object
- Alias sp Set-ItemProperty
- Alias spjb Stop-Job
- Alias spps Stop-Process
- Alias spsv Stop-Service
- Alias start Start-Process
- Alias sv Set-Variable
- Alias swmi Set-WMIInstance
- Alias tee Tee-Object
- Alias type Get-Content
- Alias where Where-Object
- Alias wjb Wait-Job
- Alias write Write-Output

1、3 获取详细帮助
在PS中可以通过get-help cmdlet获取详细的帮助信息,首先我们来看一下get-help命令支持的参数。
Exp:

- PS C:\Users\vol_20120330> get-help get-help -parameter *
- -Category <string[]>
- 显示指定类别中项的帮助。有效值为 Alias、Cmdlet、Provider 和 HelpFile。概念性主题在 HelpFile 类别中。
- Category 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“about_”)帮助的显
- 示。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Component <string[]>
- 显示具有指定的组件值(例如“Exchange”)的工具的列表。输入组件名。允许使用通配符。
- Component 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“About_”)帮助的
- 显示。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Detailed [<SwitchParameter>]
- 将参数说明以及示例添加到基本的帮助显示中。
- 此参数不影响概念性(“About_”)帮助的显示。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Examples [<SwitchParameter>]
- 只显示名称、摘要和示例。要只显示示例,请键入“(get-help <cmdlet-name>).examples”。
- 此参数不影响概念性(“About_”)帮助的显示。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Full [<SwitchParameter>]
- 显示一个 cmdlet 的完整帮助文件,其中包括参数说明和属性、示例、输入和输出对象类型以及附加注释。
- 此参数不影响概念性(“About_”)帮助的显示。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Functionality <string[]>
- 显示具有指定功能的项的帮助。输入功能。允许使用通配符。
- Functionality 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“About_”
- )帮助的显示。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Name <string>
- 请求有关指定的工具或概念性主题的帮助。输入 cmdlet、提供程序、脚本或函数名称(如 Get-Member)、概念性主题名称(如“about_Obj
- ects”)或别名(如“ls”)。在 cmdlet 和提供程序名称中允许使用通配符,但不能使用通配符查找函数帮助和脚本帮助主题的名称。
- 若要为不在 Path 环境变量中所列出的路径中的脚本获取帮助,请键入该脚本的路径和文件名。
- 如果您输入的正好是帮助主题的名称,Get-Help 将显示主题内容。如果您输入了出现在若干个帮助主题标题中的字或字图,Get-Help 将显示匹配标题
- 的列表。如果您输入的字不匹配任何帮助主题标题,Get-Help 将显示内容包括该字的主题的列表。
- 概念主题的名称(如 about_Objects)必须用英文输入,即使在非英文版的 Windows PowerShell 中也是如此。
- 是否必需? False
- 位置? 1
- 默认值
- 是否接受管道输入? true (ByPropertyName)
- 是否接受通配符? False
- -Online [<SwitchParameter>]
- 在默认的 Internet 浏览器中显示帮助主题的联机版本。此参数仅适用于 cmdlet、函数和脚本帮助主题。
- Get-Help 使用显示在 cmdlet、函数或脚本帮助主题的“相关链接”部分的第一个项中的 Internet 地址(统一资源标识符 [URI])。
- 仅当帮助主题包含以“Http”或“Https”开头的 URI 并且系统上已安装 Internet 浏览器时,此参数才适用。
- 有关在您编写的帮助主题中支持该功能的信息,请参阅 about_Comment_Based_Help,另请参阅 MSDN (Microsoft Deve
- loper Network) Library 中的“如何编写 Cmdlet 帮助”,网址是 http://go.microsoft.com/fwlin
- k/?LinkID=123415。
- 是否必需? False
- 位置? named
- 默认值 无
- 是否接受管道输入? false
- 是否接受通配符? False
- -Parameter <string>
- 只显示指定参数的详细说明。允许使用通配符。
- 此参数不影响概念性(“About_”)帮助的显示。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Path <string>
- 获取说明 cmdlet 如何在指定的提供程序路径中工作的帮助。输入 Windows PowerShell 提供程序路径。
- 此参数获取 cmdlet 帮助主题的自定义版本,该帮助主题说明 cmdlet 如何在指定的 Windows PowerShell 提供程序路径中工作。
- 此参数仅对于有关提供程序 cmdlet 的帮助有效,并且仅当该提供程序包括自定义版本的提供程序 cmdlet 帮助主题时才有效。
- 要查看提供程序路径的自定义 cmdlet 帮助,请转到提供程序路径位置并输入 Get-Help 命令,或者从任意路径位置使用 Get-Help 的 P
- ath 参数来指定提供程序路径。有关详细信息,请参阅 about_Providers。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Role <string[]>
- 显示为指定的用户角色自定义的帮助。输入一个角色。允许使用通配符。
- 输入用户在组织中担任的职位。某些 cmdlet 可以根据此参数的值在其帮助文件中显示不同的文本。此参数不影响核心 cmdlet 的帮助。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False

可以发现get-help支持的参数比较多,一般应用比较多的有: full、detailed、examples、category、parameter、online。下面我们简单的介绍这些参数。
1、3、1 full参数
full 参数用于获取某个命令的全部帮助信息,通过这个参数可以对一个命令完全掌握。这里不举例了。
1、3、2 detailed参数
detailed 参数用于获取某个命令的详细信息,但是提供的信息没有full参数多。
Exp:

- PS C:\Users\vol_20120330> get-help get-help -detailed
- 名称
- Get-Help
- 摘要
- 显示有关 Windows PowerShell 命令和概念的信息。
- 语法
- Get-Help [-Full] [[-Name] <string>] [-Category <string[]>] [-Component <str
- ing[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <stri
- ng[]>] [<CommonParameters>]
- Get-Help [-Detailed] [[-Name] <string>] [-Category <string[]>] [-Component
- <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <
- string[]>] [<CommonParameters>]
- Get-Help [-Examples] [[-Name] <string>] [-Category <string[]>] [-Component
- <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <
- string[]>] [<CommonParameters>]
- Get-Help [-Parameter <string>] [[-Name] <string>] [-Category <string[]>] [-
- Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>
- ] [-Role <string[]>] [<CommonParameters>]
- 说明
- Get-Help cmdlet 显示有关 Windows PowerShell 概念和命令(包括 cmdlet、提供程序、函数和脚本)的信息。要获取所
- 有 cmdlet 帮助主题标题的列表,请键入“get-help *”。
- 如果键入“Get-Help”并在其后键入帮助主题的确切名称或某个帮助主题特有的字,Get-Help 会显示该主题的内容。如果您输入了出现在若干个帮助主
- 题标题中的字或字图,Get-Help 将显示匹配标题的列表。如果输入的字未出现在任何帮助主题标题中,Get-Help 将显示内容中包括该字的主题的列表
- 。
- 除“get-help”外,还可以键入“help”或“man”(一次显示一屏文本),或者键入“<cmdlet-name> -?”(与 Get-Help
- 相同,但只适用于 cmdlet)。
- 可以显示完整的帮助文件,或其中的选定部分,如语法、参数或示例。还可使用 Online 参数在 Internet 浏览器中显示帮助文件的联机版本。这些参
- 数对概念性帮助主题没有影响。
- Windows PowerShell 中的概念性帮助主题以“about_”开头,如“about_Comparison_Operators”。要查看所有
- “about_”主题,请键入“get-help about_*”。要查看特定主题,请键入“get-help about_<主题名>”,如“get-he
- lp about_Comparison_Operators”。
- 参数
- -Category <string[]>
- 显示指定类别中项的帮助。有效值为 Alias、Cmdlet、Provider 和 HelpFile。概念性主题在 HelpFile 类别中。
- Category 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“about_”)
- 帮助的显示。
- -Component <string[]>
- 显示具有指定的组件值(例如“Exchange”)的工具的列表。输入组件名。允许使用通配符。
- Component 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“About_”
- )帮助的显示。
- -Detailed [<SwitchParameter>]
- 将参数说明以及示例添加到基本的帮助显示中。
- 此参数不影响概念性(“About_”)帮助的显示。
- -Examples [<SwitchParameter>]
- 只显示名称、摘要和示例。要只显示示例,请键入“(get-help <cmdlet-name>).examples”。
- 此参数不影响概念性(“About_”)帮助的显示。
- -Full [<SwitchParameter>]
- 显示一个 cmdlet 的完整帮助文件,其中包括参数说明和属性、示例、输入和输出对象类型以及附加注释。
- 此参数不影响概念性(“About_”)帮助的显示。
- -Functionality <string[]>
- 显示具有指定功能的项的帮助。输入功能。允许使用通配符。
- Functionality 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“Abo
- ut_”)帮助的显示。
- -Name <string>
- 请求有关指定的工具或概念性主题的帮助。输入 cmdlet、提供程序、脚本或函数名称(如 Get-Member)、概念性主题名称(如“about
- _Objects”)或别名(如“ls”)。在 cmdlet 和提供程序名称中允许使用通配符,但不能使用通配符查找函数帮助和脚本帮助主题的名称。
- 若要为不在 Path 环境变量中所列出的路径中的脚本获取帮助,请键入该脚本的路径和文件名。
- 如果您输入的正好是帮助主题的名称,Get-Help 将显示主题内容。如果您输入了出现在若干个帮助主题标题中的字或字图,Get-Help 将显示
- 匹配标题的列表。如果您输入的字不匹配任何帮助主题标题,Get-Help 将显示内容包括该字的主题的列表。
- 概念主题的名称(如 about_Objects)必须用英文输入,即使在非英文版的 Windows PowerShell 中也是如此。
- -Online [<SwitchParameter>]
- 在默认的 Internet 浏览器中显示帮助主题的联机版本。此参数仅适用于 cmdlet、函数和脚本帮助主题。
- Get-Help 使用显示在 cmdlet、函数或脚本帮助主题的“相关链接”部分的第一个项中的 Internet 地址(统一资源标识符 [UR
- I])。仅当帮助主题包含以“Http”或“Https”开头的 URI 并且系统上已安装 Internet 浏览器时,此参数才适用。
- 有关在您编写的帮助主题中支持该功能的信息,请参阅 about_Comment_Based_Help,另请参阅 MSDN (Microsoft
- Developer Network) Library 中的“如何编写 Cmdlet 帮助”,网址是 http://go.microsoft.c
- om/fwlink/?LinkID=123415。
- -Parameter <string>
- 只显示指定参数的详细说明。允许使用通配符。
- 此参数不影响概念性(“About_”)帮助的显示。
- -Path <string>
- 获取说明 cmdlet 如何在指定的提供程序路径中工作的帮助。输入 Windows PowerShell 提供程序路径。
- 此参数获取 cmdlet 帮助主题的自定义版本,该帮助主题说明 cmdlet 如何在指定的 Windows PowerShell 提供程序路径
- 中工作。此参数仅对于有关提供程序 cmdlet 的帮助有效,并且仅当该提供程序包括自定义版本的提供程序 cmdlet 帮助主题时才有效。
- 要查看提供程序路径的自定义 cmdlet 帮助,请转到提供程序路径位置并输入 Get-Help 命令,或者从任意路径位置使用 Get-Help
- 的 Path 参数来指定提供程序路径。有关详细信息,请参阅 about_Providers。
- -Role <string[]>
- 显示为指定的用户角色自定义的帮助。输入一个角色。允许使用通配符。
- 输入用户在组织中担任的职位。某些 cmdlet 可以根据此参数的值在其帮助文件中显示不同的文本。此参数不影响核心 cmdlet 的帮助。
- <CommonParameters>
- 此 cmdlet 支持通用参数: Verbose、Debug、
- ErrorAction、ErrorVariable、WarningAction、WarningVariable、
- OutBuffer 和 OutVariable。有关详细信息,请键入
- “get-help about_commonparameters”。
- -------------------------- 示例 1 --------------------------
- C:\PS>get-help
- 说明
- -----------
- 此命令显示有关 Windows PowerShell 帮助系统的帮助。
- -------------------------- 示例 2 --------------------------
- C:\PS>get-help *
- 说明
- -----------
- 此命令显示 Windows PowerShell 帮助系统中的所有帮助文件的列表。
- -------------------------- 示例 3 --------------------------
- C:\PS>get-help get-alias
- C:\PS>help get-alias
- C:\PS>get-alias -?
- 说明
- -----------
- 这些命令显示有关 get-alias cmdlet 的基本信息。“Get-Help”和“-?”命令在单个页面上显示信息。“Help”命令一次一个页面地
- 显示信息。
- -------------------------- 示例 4 --------------------------
- C:\PS>get-help about_*
- 说明
- -----------
- 此命令显示 Windows PowerShell 帮助中包括的概念主题的列表。所有这些主题都以字符“about_”开始。若要显示特定帮助文件,请键入“
- get-help <主题名称>”,例如,“get-help about_signing”。
- -------------------------- 示例 5 --------------------------
- C:\PS>get-help ls -detailed
- 说明
- -----------
- 此命令通过指定 Get-ChildItem cmdlet 的一个别名“ls”来显示其详细帮助。Detailed 参数请求帮助文件的详细视图,包括参数描
- 述和示例。若要查看 cmdlet 的完整的帮助文件,请使用 Full 参数。
- -------------------------- 示例 6 --------------------------
- C:\PS>get-help format-string -full
- 说明
- -----------
- 此命令显示 Format-String cmdlet 的完整视图帮助。帮助的完整视图包括参数说明、示例,以及有关参数的详细技术信息的表。
- -------------------------- 示例 7 --------------------------
- C:\PS>get-help start-service -examples
- 说明
- -----------
- 此命令显示在 Windows PowerShell 命令中使用 start-service 的示例。
- -------------------------- 示例 8 --------------------------
- C:\PS>get-help get-childitem -parameter f*
- 说明
- -----------
- 此命令显示以“f”开始的 Get-ChildItem cmdlet 的参数(filter 和 force)的说明。有关所有参数的说明,请键入“get-
- help get-childitem parameter*”。
- -------------------------- 示例 9 --------------------------
- C:\PS>(get-help write-output).syntax
- 说明
- -----------
- 此命令只显示 Write-Output cmdlet 的语法。
- 语法是帮助对象的许多属性之一;其他是描述、详细信息、示例和参数。若要查找帮助对象的所有属性和方法,请键入“get-help <cmdlet-name>
- | get-member”;例如,“get-help start-service | get member”。
- -------------------------- 示例 10 --------------------------
- C:\PS>(get-help trace-command).alertset
- 说明
- -----------
- 此命令显示该 cmdlet 的相关注释。注释存储在帮助对象的 alertSet 属性中。
- 注释包括概念性信息和使用 cmdlet 的提示。默认情况下,只有使用 Get-Help 的 Full 参数时才会显示注释,但也可使用 alertSet
- 属性显示它们。
- -------------------------- 示例 11 --------------------------
- C:\PS>get-help add-member -full | out-string -stream | select-string -patte
- rn clixml
- 说明
- -----------
- 此示例说明如何搜索特定的 cmdlet 帮助主题中的字。此命令在 Add-Member cmdlet 的完整版帮助主题中搜索字“clixml”。
- 因为 Get-Help cmdlet 生成的是 MamlCommandHelpInfo 对象,而不是字符串,所以需要使用将帮助主题内容转换为字符串的命
- 令,如 Out-String 或 Out-File。
- -------------------------- 示例 12 --------------------------
- C:\PS>get-help get-member -online
- 说明
- -----------
- 此命令显示 Get-Member cmdlet 的联机版帮助主题。
- -------------------------- 示例 13 --------------------------
- C:\PS>get-help remoting
- 说明
- -----------
- 此命令显示内容中包含单词“remoting”一字的主题的列表。
- 如果输入的字未出现在任何主题标题中,Get-Help 将显示包括该字的主题列表。
- -------------------------- 示例 14 --------------------------
- C:\PS>get-help get-item -path SQLSERVER:\DataCollection
- NAME
- Get-Item
- SYNOPSIS
- Gets a collection of Server objects for the local computer and any comp
- uters to which you have made a SQL Server PowerShell connection.
- ...
- C:\PS> cd SQLSERVER:\DataCollection
- C:\PS> SQLSERVER:\DataCollection> get-help get-item
- NAME
- Get-Item
- SYNOPSIS
- Gets a collection of Server objects for the local computer and any comp
- uters to which you have made a SQL Server PowerShell connection.
- ...
- C:\PS> Get-Item
- NAME
- Get-Item
- SYNOPSIS
- Gets the item at the specified location.
- ...
- 说明
- -----------
- 此示例说明如何获取 Get-Item cmdlet 的帮助,了解如何在 Windows PowerShell SQL Server 提供程序的 Dat
- aCollection 节点中使用该 cmdlet。
- 该示例演示了获取 Get-Item 的自定义帮助的两种方式。
- 第一条命令使用 Get-Help 的 Path 参数来指定提供程序路径。可以在任意路径位置输入此命令。
- 第二条命令使用 Set-Location cmdlet(别名为“cd”)来转到提供程序路径。从该位置,即使不使用 Path 参数,Get-Help 命
- 令也会获取该提供程序路径的自定义帮助。
- 第三条命令说明了文件系统路径中的 Get-Help 命令在不使用 Path 参数的情况下,获取 Get-Item cmdlet 的标准帮助。
- -------------------------- 示例 15 --------------------------
- C:\PS>get-help c:\ps-test\MyScript.ps1
- 说明
- -----------
- 此命令获取 MyScript.ps1 脚本的帮助。有关如何编写函数和脚本的帮助的信息,请参阅 about_Comment_Based_Help。
- 备注
- 若要查看示例,请键入: "get-help Get-Help -examples".
- 有关详细信息,请键入: "get-help Get-Help -detailed".
- 若要获取技术信息,请键入: "get-help Get-Help -full".
- ____________________________________________________________________________

1、3、3 examples参数
examples 参数用来获取某个命令的实例信息。
Exp:

- PS C:\Users\vol_20120330> get-help -examples set-executionpolicy
- 名称
- Set-ExecutionPolicy
- 摘要
- 更改 Windows PowerShell 执行策略的用户首选项。
- -------------------------- 示例 1 --------------------------
- C:\PS>set-executionpolicy remotesigned
- 说明
- -----------
- 此命令将 shell 执行策略的用户首选项设置为 RemoteSigned。
- -------------------------- 示例 2 --------------------------
- C:\PS>Set-ExecutionPolicy Restricted
- Set-ExecutionPolicy : Windows PowerShell updated your local preference succ
- essfully, but the setting is overridden by the group policy applied to your
- system. Due to the override, your shell will retain its current effective
- execution policy of "AllSigned". Contact your group policy administrator fo
- r more information.
- At line:1 char:20
- + set-executionpolicy <<<< restricted
- 说明
- -----------
- 此命令尝试将 shell 的执行策略设置为“Restricted”。向注册表中写入了“Restricted”设置,但是,由于它与组策略冲突,因此该设置
- 无效,即使该设置比组策略的限制更严格也是如此。
- -------------------------- 示例 3 --------------------------
- C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpoli
- cy} | set-executionpolicy -force
- 说明
- -----------
- 此命令从远程计算机获取执行策略并将该策略应用于本地计算机。
- 此命令使用 Invoke-Command cmdlet 向远程计算机发送命令。由于可以通过管道将 ExecutionPolicy (Microsoft
- .PowerShell.ExecutionPolicy) 对象传递到 Set-ExecutionPolicy,因此此命令不需要 ExecutionPo
- licy 参数。
- 该命令具有 Force 参数,该参数可禁止显示用户提示。
- -------------------------- 示例 4 --------------------------
- C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -fo
- rce
- C:\PS> get-executionpolicy -list
- Scope ExecutionPolicy
- ----- ---------------
- MachinePolicy Undefined
- UserPolicy Undefined
- Process Undefined
- CurrentUser AllSigned
- LocalMachine RemoteSigned
- C:\PS> get-executionpolicy
- AllSigned
- 说明
- -----------
- 此示例演示如何设置特定作用域的执行策略。
- 第一个命令使用 Set-ExecutionPolicy cmdlet 设置当前用户的 AllSigned 的执行策略。它使用 Force 参数禁止显示
- 用户提示。
- 第二个命令使用 Get-ExecutionPolicy 的 List 参数获取每个作用域中设置的执行策略。结果显示,为当前用户设置的执行策略不同于为计
- 算机的所有用户设置的执行策略。
- 第三个命令使用不带参数的 Get-ExecutionPolicy cmdlet 获取本地计算机上的当前用户的有效执行策略。结果证明,为当前用户设置的执
- 行策略优先于为所有用户设置的执行策略。
- -------------------------- 示例 5 --------------------------
- C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined
- 说明
- -----------
- 此命令使用执行策略值 Undefined 有效删除为当前用户作用域设置的执行策略。结果,在组策略或 LocalMachine(所有用户)作用域中设置的
- 执行策略是有效的。
- 如果将所有作用域中的执行策略设置为 Undefined 并且未设置组策略,则默认的执行策略 Restricted 对计算机的所有用户都是有效的。

1、3、4 category参数
category参数用来获取某一类cmdlet,有点类似于get-command -commandtype 命令。
Exp:

- PS C:\Users\vol_20120330> get-help -category alias
- Name Category Synopsis
- ---- -------- --------
- ac Alias Add-Content
- asnp Alias Add-PSSnapin
- clc Alias Clear-Content
- cli Alias Clear-Item
- clp Alias Clear-ItemProperty
- clv Alias Clear-Variable
- compare Alias Compare-Object
- cpi Alias Copy-Item

1、3、5 parameter参数
parameter 参数用来获取某个cmdlet的某个指定的参数帮助信息。
Exp:

- PS C:\Users\vol_20120330> get-help get-help -parameter parameter
- -Parameter <string>
- 只显示指定参数的详细说明。允许使用通配符。
- 此参数不影响概念性(“About_”)帮助的显示。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False

1、3、6 online参数
online参数用来通过互联网获取某个cmdlet的帮助信息。
Exp:
get-help -online get-process #这个命令通过互联网获取get-process的帮助信息
1、4 获取概念性帮助
PS中帮助系统提供了一整套的帮助文件和信息来提供PS中的概念性信息,我们可以通过get-help about_* 来获取PS中提供的概念性帮助主题;下面我们通过一个命令来获取
执行提供程序段相关帮助信息。
Exp:

- ____________________________________________________________________________
- PS C:\Users\vol_20120330> get-help about_providers
- 主题
- about_Providers
- 简短说明
- 描述 Windows PowerShell 提供程序如何使用户能够访问在无这些提供程序时很难从命令行访问的
- 数据和组件。数据以类似于文件系统驱动器的一致格式提供。
- 详细说明
- Windows PowerShell 提供程序是基于 Microsoft .NET Framework 的程序,它们使存储于专
- 用数据存储中的数据在 Windows PowerShell 中可用,以便于您查看和管理这些数据。
- 提供程序公开的数据存储在驱动器中,您可以像在硬盘驱动器上一样通过路径访问这些数据。可以使用
- 提供程序支持的任何内置 cmdlet 管理提供程序驱动器中的数据。此外,可以使用专门针对这些数据设计
- 的自定义 cmdlet。
- 提供程序在内置 cmdlet 中添加动态参数。只有当 cmdlet 与提供程序数据一起使用时,这些参数才可用。
- 内置提供程序
- Windows PowerShell 包括一组内置提供程序,它们可以用于访问不同类型的数据存储。
- 提供程序 驱动器 数据存储
- ----------------- ------------ ------------------------------
- Alias Alias: Windows PowerShell 别名
- 证书用于数字签名的 Cert: x509 证书
- EnvironmentWindows Env: 环境变量
- FileSystem * 文件系统驱动器、目录和文件
- Function Function: Windows PowerShell 函数
- Registry HKLM:, HKCU Windows 注册表
- Variable Variable: Windows PowerShell 变量
- WS-Management WSMan WS-Management 配置信息
- * FileSystem 驱动器因系统而异。
- 您还可以创建自己的 Windows PowerShell 提供程序,也可以安装他人开发的提供程序。若要列出会话
- 中可用的提供程序,请键入:
- get-psprovider
- 安装和删除提供程序
- Windows PowerShell 提供程序在 Windows PowerShell 管理单元中提供给您使用,这些管理单
- 元是编译为 .dll 文件的基于 .NET Framework 的程序。这些管理单元可以包含提供程序和
- cmdlet。
- 在使用提供程序功能之前,必须先安装包含该提供程序的管理单元,然后将该管理单元添加到 Windows
- PowerShell 控制台。有关详细信息,请参阅 about_PsSnapins。
- 不能在当前会话中卸载提供程序,但可以移除提供程序的 Windows PowerShell 管理单元。如果这样
- 做,则将移除该管理单元的所有内容,包括其 cmdlet。
- 若要从当前会话中移除提供程序,请使用 Remove-PsSnapin cmdlet。此 cmdlet 不会卸载提供程
- 序,但它将使该提供程序在会话中不可用。
- 还可以使用 Remove-PsDrive cmdlet 从当前会话中移除任何驱动器。驱动器上的数据不会受影响,
- 但该驱动器在该会话中不再可用。
- 查看提供程序
- 若要查看计算机上的 Windows PowerShell 提供程序,请键入:
- get-psprovider
- 输出将列出内置的提供程序以及您添加到会话中的提供程序。
- 提供程序 CMDLET
- 下面的 cmdlet 用于处理由任何提供程序公开的数据。可以使用相同的 cmdlet,以相同的方式来管理提
- 供程序公开的不同类型的数据。在学会管理一个提供程序的数据后,就可以使用相同的过程来管理任何提
- 供程序中的数据。
- 例如,New-Item cmdlet 用于创建一个新项。在 FileSystem 提供程序支持的 C: 驱动器中,可
- 以使用 New-Item 来创建新的文件或文件夹。在 Registry 提供程序支持的驱动器中,可以使用
- New-Item 来创建新的注册表项。在 Alias: 驱动器中,可以使用 New-Item 来创建新的别名。
- 有关以下任何 cmdlet 的详细信息,请键入:
- get-help <cmdlet-name> -detailed
- CHILDITEM CMDLET
- Get-ChildItem
- CONTENT CMDLET
- Add-Content
- Clear-Content
- Get-Content
- Set-Content
- ITEM CMDLET
- Clear-Item
- Copy-Item
- Get-Item
- Invoke-Item
- Move-Item
- New-Item
- Remove-Item
- Rename-Item
- Set-Item
- ITEMPROPERTY CMDLET
- Clear-ItemProperty
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Rename-ItemProperty
- Set-ItemProperty
- LOCATION CMDLET
- Get-Location
- Pop-Location
- Push-Location
- Set-Location
- PATH CMDLET
- Join-Path
- Convert-Path
- Split-Path
- Resolve-Path
- Test-Path
- PSDRIVE CMDLET
- Get-PSDrive
- New-PSDrive
- Remove-PSDrive
- PSPROVIDER CMDLET
- Get-PSProvider
- 查看提供程序数据
- 提供程序的主要优点是,它可以按人们所熟悉的且一致的方式来公开其数据。用于显示数据的模型是文件系统驱动器。
- 若要使用提供程序所公开的数据,可以将该数据视为硬盘驱动器中的数据来对其进行查看、
- 浏览和更改。因此,有关提供程序的最重要信息是它所支持的驱动器的名称。
- 驱动器在 Get-PsProvider cmdlet 的默认显示中列出,但是可以使用 Get-PsDrive cmdlet 来获
- 取有关该提供程序驱动器的信息。例如,若要获取 Function: 驱动器的所有属性,请键入:
- get-psdrive Function | format-list *
- 可以像在文件系统驱动器中一样查看和浏览提供程序驱动器中的数据。
- 若要查看提供程序驱动器的内容,请使用 Get-Item 或 Get-ChildItem cmdlet。键入
- 驱动器名称,后跟一个冒号 (:)。例如,若要查看 Alias: 驱动器的内容,请键入:
- get-item alias:
- 可以从一个驱动器中查看和管理任何其他驱动器中的数据。例如,若要从另一个
- 驱动器查看 HKLM: 驱动器中的 HKLM\Software 注册表项,请键入:
- get-childitem hklm:\software
- 若要打开驱动器,请使用 Set-Location cmdlet。请记住,指定驱动器路径
- 时要包含冒号。例如,若要将位置更改为 Cert: 驱动器的根目录,请键入:
- set-location cert:
- 然后,若要查看 Cert: 驱动器的内容,请键入:
- get-childitem
- 浏览分层数据
- 可以像浏览硬盘驱动一样浏览提供程序驱动器。如果数据位于项目内的
- 项目层次结构中,请使用反斜杠 (\) 来指示子项。使用下面的格式:
- drive:\location\child-location\...
- 例如,若要将位置更改到 HKLM\Software 注册表项,请键入 Set-Location 命令,例如:
- set-location hklm:\software
- 还可以使用位置的相对引用。点 (.) 表示当前位置。例如,如果您在 HKLM:\Software\Microsoft 注
- 册表项中,并且要列出 HKLM:\Software\Micrsoft\PowerShell 项中的注册表子项,请键入以下命令:
- get-childitem .\powershell
- 查找动态参数
- 动态参数是由提供程序添加到 cmdlet 的 cmdlet 参数。这些参数只有
- 在 cmdlet 与添加它们的提供程序一起使用时才可用。
- 例如,Cert: 驱动器将 CodeSigningCert 参数添加到 Get-Item 和 Get-ChildItem
- cmdlet。只有在 Cert: 启动器中使用 Get-Item 或 Get-ChildItem 时,才可以使用此参数。
- 若要查看提供程序所支持的动态参数的列表,请参阅提供程序的"帮助"文件。键入:
- get-help <provider-name>
- 例如:
- get-help certificate
- 了解提供程序
- 虽然所有提供程序数据都出现在驱动器中,并且可以使用相同方法来浏览它们,
- 但它们之间的相似性只有这些。提供程序所公开的数据存储多种多样,可以是
- Active Directory 位置,也可以是 Microsoft Exchange Server 邮箱。
- 有关各个 Windows PowerShell 提供程序的信息,请键入:
- get-help <ProviderName>
- 例如:
- get-help registry
- 如需获得有关提供程序的帮助主题的列表,请键入:
- get-help * -category provider
- 另请参阅
- about_Locations
- about_Path_Syntax

1、5 获取提供程序的帮助
我们知道cmdlet都有一个提供程序来支持,同时整个系统的驱动器系统需要提供程序的支持。我们可以通过下面的命令来获取系统中提供程序的概要信息。
Exp:

- PS C:\Users\vol_20120330> get-help -category provider
- Name Category Synopsis
- ---- -------- --------
- WSMan Provider 提供对 Web Services for Management ...
- Alias Provider 提供对 Windows PowerShell 别名以及它们所表示...
- Environment Provider 提供对 Windows 环境变量的访问。
- FileSystem Provider 提供对文件和目录的访问。
- Function Provider 提供对 Windows PowerShell 中所定义函数的访问。
- Registry Provider 提供从 Windows PowerShell 对系统注册表项和注...
- Variable Provider 提供对 Windows PowerShell 变量及其值的访问。
- Certificate Provider 提供对 X.509 证书存储和对 Windows PowerSh...

通过上面的命令我们知道,系统中主要提供了: wsman、 alias、enviroment、filesystem、function、registry、variable和certificate共8中提供程序。我们可以
通过下面的命令形式获取不同的程序提供者的信息:
get-help 提供程序名
Exp:

- PS C:\Users\vol_20120330> get-help -name certificate
- 提供程序名称
- Certificate
- 驱动器
- Cert:
- 摘要
- 提供对 X.509 证书存储和对 Windows PowerShell 中的证书的访问。
- 说明
- Windows PowerShell 安全策略支持使用 Authenticode 签名和 X.509 编码的数字公钥证书对脚本进行签名。Windows
- PowerShell 的签名功能并不完整,但这些功能允许用户对脚本进行签名,并允许 Windows PowerShell 识别已签名和未签名的脚本,
- 以及确定脚本是否源自 Internet。
- Windows PowerShell 证书提供程序允许您在证书命名空间中进行导航并查看证书存储和证书。它还允许您复制、移动和删除证书和证书存储,并在
- Microsoft 管理控制台 (MMC) 中打开证书管理单元。
- 证书提供程序在 Windows PowerShell 中将证书命名空间公开为 Cert: 驱动器。Cert: 驱动器具有以下三个级别:
- -- 存储位置 (Microsoft.PowerShell.Commands.X509StoreLocation),它是对当前用户和所有用户证书进行分
- 组的高级容器。每个系统具有一个 CurrentUser 和 LocalMachine(所有用户)存储位置。
- -- 证书存储区 (System.Security.Cryptography.X509Certificates.X509Store),它是保存和管理证
- 书的物理存储区。
- -- X.509 证书 (System.Security.Cryptography.X509Certificates.X509Certificate2
- ),其中每个证书表示计算机上的一个 X.509 证书。证书通过证书指纹进行识别。
- Windows PowerShell 证书提供程序支持 Set-Location、Get-Location、Get-Item、Get-ChildIte
- m 和 Invoke-Item cmdlet。
- 另外,包括证书提供程序的 Windows PowerShell 安全性管理单元 (Microsoft.PowerShell.Security) 还包括
- 获取和设置 Authenticode 签名和获取证书的管理单元。要获取安全性管理单元中的 cmdlet 列表,请键入“get-command -mod
- ule *security”。
- 功能
- 任务
- 任务: 在 Cert: 驱动器中导航
- -------------------------- 示例 1 --------------------------
- 此命令使用 Set-Location cmdlet 更改 Cert: 驱动器的当前位置。
- set-location cert:
- -------------------------- 示例 2 --------------------------
- 此命令使用 Set-Location 命令将当前位置更改为 LocalMachine 存储位置中的 Root 证书存储。使用反斜杠 (\) 或
- 正斜杠 (/) 指示 Cert: 驱动器的级别。
- set-location -path LocalMachine\Root
- 如果您不在 Cert: 驱动器中,请在路径前面添加驱动器名称。
- 任务: 显示 Cert: 驱动器的内容
- -------------------------- 示例 1 --------------------------
- 此命令使用 Get-ChildItem cmdlet 显示 CurrentUser 证书存储位置中的证书存储。
- get-childitem -path cert:\CurrentUser
- 如果您位于 Cert: 驱动器中,则可以省略驱动器名称。
- -------------------------- 示例 2 --------------------------
- 此命令使用 Get-ChildItem cmdlet 显示 My 证书存储中的证书。
- get-childitem -path cert:\CurrentUser\My
- 如果您位于 Cert: 驱动器中,则可以省略驱动器名称。
- -------------------------- 示例 3 --------------------------
- 此命令使用 Get-Item cmdlet 获取“My”证书存储,并使用 Format-List 带通配符 (*) 的 Property 参数
- 来显示存储的所有属性。
- get-item -path cert:\CurrentUser\My | format-list *
- -------------------------- 示例 4 --------------------------
- 此命令获取证书并显示证书的所有属性。它使用 Get-ChildItem cmdlet 获取证书,并使用 Format-List 带通配符 (*
- ) 的 Property 参数来显示证书的所有属性。
- 证书通过证书指纹进行识别。
- get-childitem -path cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9
- EA776CE66B | format-list -property *
- -------------------------- 示例 5 --------------------------
- 此命令使用 Get-ChildItem cmdlet 获取计算机上的所有证书,并使用其 CodeSigningCert 动态参数来仅获取具有代
- 码签名颁发机构的证书。
- get-childitem -path * -codesigningcert -recurse
- 任务: 打开 MMC 证书管理单元
- -------------------------- 示例 1 --------------------------
- 此命令打开 MMC 证书管理单元来管理指定的证书。
- invoke item cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE6
- 6B
- 动态参数
- -CodeSigningCert <System.Management.Automation.SwitchParameter>
- 仅获取那些具有代码签名颁发机构的证书。
- 支持的 cmdlet: Get-Item, Get-ChildItem
- 注释
- 相关链接
- about_Providers
- about_Signing
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
- Get-PfxCertificate
- ______________________________________

1、6 获取脚本或者函数的相关帮助信息
通过get-help cmdlet可以获取脚本和函数的相关帮组信息。其命令格式为:
get-help 函数名
get-helpl 脚本路径\脚本文件名
Exp:
- PS C:\Users\vol_20120330> get-help a:
- A:
注意: get-help * 不能获取脚本、函数的帮助信息。
二、 管道和对象成员
2、1 管道
在各种现代的shell中,均支持管道的概念。 管道的最大特点就是: 前一个命令的输出作为后一个命令的输入。cmd、bash均支持管道的概念,这里我就不多说了,下面我们说说PS中
管道的概念。
在PS中,继承了cmd管道符号的表示方法: | 表管道;但是PS与cmd的管道有本质的区别, cmd中的管道传递的是文本信息,而PS中传递的是对象,因此PS中的管道更加易于使用
和管理。
例如: get-location cmdlet命令返回的是一个pathinfo对象,这个对象是一个信息包,信息包中包含了相关的信息。
2、2 对象成员
基于面向对象的概念,对象具有属性和方法;这些都可以认为是对象的成员, PS对象均具有众多的成员,为了查看这些成员,PS提供了一个获取对象成员的cmdlet: get-member。
我们可以利用get-member获取对象的成员信息。
Exp:

- PS C:\Users\vol_20120330> get-location | get-member
- TypeName: System.Management.Automation.PathInfo
- Name MemberType Definition
- ---- ---------- ----------
- Equals Method bool Equals(System.Object obj)
- GetHashCode Method int GetHashCode()
- GetType Method type GetType()
- ToString Method string ToString()
- Drive Property System.Management.Automation.PSDriveInfo Drive {get;}
- Path Property System.String Path {get;}
- Provider Property System.Management.Automation.ProviderInfo Provider {...
- ProviderPath Property System.String ProviderPath {get;}

我们可以查看一下get-member支持那些参数:

- PS C:\Users\vol_20120330> get-help -parameter * get-member
- -Force [<SwitchParameter>]
- 向显示内容中添加固有成员(PSBase、PSAdapted、PSObject、PSTypeNames)以及编译器生成的 get_ 和 set_ 方法。
- 默认情况下,Get-Member 会在除“Base”和“Adapted”之外的所有视图中获取这些属性,但不会显示它们。
- 下面的列表描述了使用 Force 参数时添加的属性:
- -- PSBase:.NET Framework 对象的原始属性,无任何扩展或改编。这些是为对象类定义的属性并列在 MSDN 中。
- -- PSAdapted:在 Windows PowerShell 扩展类型系统中定义的属性和方法。
- -- PSExtended:在 Types.ps1xml 文件中添加的或使用 Add-Member cmdlet 添加的属性和方法。
- -- PSObject:将基对象转换为 Windows PowerShell PSObject 对象的适配器。
- -- PSTypeNames:按专指性顺序描述对象的对象类型的列表。设置对象格式时,Windows PowerShell 会在 Windows Pow
- erShell 安装目录 ($pshome) 下的 Format.ps1xml 文件中搜索类型。它将使用找到的第一个类型的格式定义。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -InputObject <psobject>
- 指定将检索其成员的对象。
- 使用 InputObject 参数与通过管道将对象传递到 Get-Member 不同。区别如下:
- -- 通过管道将对象集合传递到 Get-Member 时,Get-Member 会获取集合中单个对象的成员,如整数数组中整数的属性。
- -- 使用 InputObject 提交对象集合时,Get-Member 会获取集合的成员,如整数数组中数组的属性。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? true (ByValue)
- 是否接受通配符? False
- -MemberType <PSMemberTypes>
- 仅获取具有指定成员类型的成员。默认值为 All。
- 此参数的有效值为:
- -- AliasProperty:一种可为现有属性定义新名称的属性。
- -- CodeMethod:一种可引用 .NET Framework 类的静态方法的方法。
- -- CodeProperty:一种可引用 .NET Framework 类的静态属性的属性。
- -- Event:指示对象将发送消息来指示某项操作或状态更改。
- -- MemberSet:属性和方法的预定义集合,如 PSBase、PSObject 和 PSTypeNames。
- -- Method:基础 .NET Framework 对象的方法。
- -- NoteProperty:具有静态值的属性。
- -- ParameterizedProperty:具有参数和参数值的属性。
- -- Property:基础 .NET Framework 对象的属性。
- -- PropertySet:对象属性的预定义集合。
- -- ScriptMethod:其值是脚本输出的方法。
- -- ScriptProperty:其值是脚本输出的属性。
- -- All:获取全部成员类型。
- -- Methods:获取对象的所有方法类型(如 Method、CodeMethod、ScriptMethod)。
- -- Properties:获取对象的所有类型的属性(如 Property、CodeProperty、AliasProperty、ScriptProp
- erty)。
- 并非所有对象都具有成员的全部类型。如果您指定该对象所不具有的成员类型,则 Windows PowerShell 会返回 null 值。
- 若要获取相关类型的成员(如所有扩展成员),请使用 View 参数。如果将 MemberType 参数与 Static 或 View 参数一起使用,Ge
- t-Member 将获取同时属于这两个集合的成员。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Name <string[]>
- 指定对象的一个或多个属性或方法的名称。Get-Member 仅获取指定的属性和方法。
- 如果将 Name 参数与 MemberType、View 或 Static 参数一起使用,Get-Member 将仅获取满足所有参数条件的成员。
- 若要根据名称获取静态成员,请将 Static 参数与 Name 参数一起使用。
- 是否必需? False
- 位置? 1
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -Static [<SwitchParameter>]
- 仅获取对象的静态属性和方法。
- 将在对象的类上定义静态属性和方法,而不是在类的任何特定实例上定义。
- 如果将 Static 参数与 View 参数一起使用,将忽略 View 参数。如果将 Static 参数与 MemberType 参数一起使用,Get
- -Member 将仅获取同时属于这两个集合的成员。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False
- -View <PSMemberViewTypes>
- 仅获取特定类型的成员(属性和方法)。指定一个或多个值。默认值是“Adapted, Extended”。
- 有效值包括:
- -- Base:仅获取 .NET Framework 对象的原始属性和方法(无任何扩展或改编)。
- -- Adapted:仅获取 Windows PowerShell 扩展类型系统中定义的属性和方法。
- -- Extended:仅获取在 Types.ps1xml 文件中添加的或使用 Add-Member cmdlet 添加的属性和方法。
- -- All:获取 Base、Adapted 和 Extended 视图中的成员。
- View 参数确定检索到的成员,而不只是这些成员的显示方式。
- 若要获取特定成员类型(如脚本属性),请使用 MemberType 参数。如果在同一命令中使用 MemberType 和 View 参数,Get-Mem
- ber 将获取同时属于这两个集合的成员。如果在同一命令中使用 Static 和 View 参数,将忽略 View 参数。
- 是否必需? False
- 位置? named
- 默认值
- 是否接受管道输入? false
- 是否接受通配符? False

可以发现get-member cmdlet支持:force、inputobject、membertype、name、static、view这些参数。 下面我们简要的利用一下这些参数
Exp:获取对象的静态方法和属性

- PS C:\Users\vol_20120330> get-location | get-member -static
- TypeName: System.Management.Automation.PathInfo
- Name MemberType Definition
- ---- ---------- ----------
- Equals Method static bool Equals(System.Object objA, System.Obj...
- ReferenceEquals Method static bool ReferenceEquals(System.Object objA, S...

Exp: 获取对象的属性

- PS C:\Users\vol_20120330> get-location | get-member -membertype property
- TypeName: System.Management.Automation.PathInfo
- Name MemberType Definition
- ---- ---------- ----------
- Drive Property System.Management.Automation.PSDriveInfo Drive {get;}
- Path Property System.String Path {get;}
- Provider Property System.Management.Automation.ProviderInfo Provider {...
- ProviderPath Property System.String ProviderPath {get;}

Exp:获取对象特定的成员, 湖区.Net Framwork 的原始属性和方法

- PS C:\Users\vol_20120330> get-location | get-member -view base
- TypeName: System.Management.Automation.PathInfo
- Name MemberType Definition
- ---- ---------- ----------
- Equals Method bool Equals(System.Object obj)
- GetHashCode Method int GetHashCode()
- GetType Method type GetType()
- ToString Method string ToString()
- Drive Property System.Management.Automation.PSDriveInfo Drive {get;}
- Path Property System.String Path {get;}
- Provider Property System.Management.Automation.ProviderInfo Provider {...
- ProviderPath Property System.String ProviderPath {get;}

三、格式化输出
前面的文章中提到过部分关于格式化的内容,这里进一步进行介绍。
PS支持4个格式化cmdlet: format-wide、 format-list、format-table、format-custom; 这里仅介绍前面三个。
四个命令均需要管道输出对象作为输入;四个cmdlet均有默认的输出属性,如果不进行指定,则输出默认的属性。
3、1 format-wide
格式化命令默认输出不同数量的属性,format-wide默认仅输出一个默认属性。
Exp:

- PS C:\Users\vol_20120330> get-command | format-wide
- % ?
- A: ac
- Add-Computer Add-Content
- Add-History Add-Member
- Add-PSSnapin Add-Type
- asnp B:
- C: cat
- cd cd..
- cd\ chdir
- Checkpoint-Computer clc
- clear Clear-Content
- Clear-EventLog Clear-History
- Clear-Host Clear-Item
- Clear-ItemProperty Clear-Variable
- clhy cli
- clp cls
- clv compare
- Compare-Object Complete-Transaction
- Connect-WSMan ConvertFrom-Csv
- ConvertFrom-SecureString ConvertFrom-StringData
- Convert-Path ConvertTo-Csv
- ConvertTo-Html ConvertTo-SecureString
- ConvertTo-Xml copy
- Copy-Item Copy-ItemProperty
- cp cpi
- cpp cvpa
- D: dbp
- Debug-Process del
- diff dir
- Disable-ComputerRestore Disable-PSBreakpoint
- Disable-PSRemoting Disable-PSSessionConfiguration
- Disable-WSManCredSSP Disconnect-WSMan
- E: ebp
- echo Enable-ComputerRestore
- Enable-PSBreakpoint Enable-PSRemoting
- Enable-PSSessionConfiguration Enable-WSManCredSSP
- Enter-PSSession epal
- epcsv epsn
- erase etsn
- Exit-PSSession Export-Alias
- Export-Clixml Export-Console
- Export-Counter Export-Csv
- Export-FormatData Export-ModuleMember
- Export-PSSession exsn
- F: fc
- fl foreach
- ForEach-Object Format-Custom
- Format-List Format-Table
- Format-Wide ft
- fw G:
- gal gbp
- gc gci
- gcm gcs
- gdr Get-Acl
- Get-Alias Get-AuthenticodeSignature
- Get-ChildItem Get-Command
- Get-ComputerRestorePoint Get-Content
- Get-Counter Get-Credential
- Get-Culture Get-Date
- Get-Event Get-EventLog
- Get-EventSubscriber Get-ExecutionPolicy
- Get-FormatData Get-Help
- Get-History Get-Host
- Get-HotFix Get-Item
- Get-ItemProperty Get-Job
- Get-Location Get-Member
- Get-Module Get-PfxCertificate
- Get-Process Get-PSBreakpoint
- Get-PSCallStack Get-PSDrive
- Get-PSProvider Get-PSSession
- Get-PSSessionConfiguration Get-PSSnapin
- Get-Random Get-Service
- Get-TraceSource Get-Transaction
- Get-UICulture Get-Unique
- Get-Variable Get-Verb
- Get-WinEvent Get-WmiObject
- Get-WSManCredSSP Get-WSManInstance
- ghy gi
- gjb gl
- gm gmo
- gp gps
- group Group-Object
- gsn gsnp
- gsv gu
- gv gwmi
- h H:
- help history
- I: icm
- iex ihy
- ii Import-Alias
- Import-Clixml Import-Counter
- Import-Csv Import-LocalizedData
- Import-Module Import-PSSession
- ImportSystemModules Invoke-Command
- Invoke-Expression Invoke-History
- Invoke-Item Invoke-WmiMethod
- Invoke-WSManAction ipal
- ipcsv ipmo
- ipsn ise
- iwmi J:
- Join-Path K:
- kill L:
- Limit-EventLog lp
- ls M:
- man md
- measure Measure-Command
- Measure-Object mi
- mkdir more
- mount move
- Move-Item Move-ItemProperty
- mp mv
- N: nal
- ndr New-Alias
- New-Event New-EventLog
- New-Item New-ItemProperty
- New-Module New-ModuleManifest
- New-Object New-PSDrive
- New-PSSession New-PSSessionOption
- New-Service New-TimeSpan
- New-Variable New-WebServiceProxy
- New-WSManInstance New-WSManSessionOption
- ni nmo
- nsn nv
- O: ogv
- oh Out-Default
- Out-File Out-GridView
- Out-Host Out-Null
- Out-Printer Out-String
- P: popd
- Pop-Location prompt
- ps psEdit
- pushd Push-Location
- pwd Q:
- r R:
- rbp rcjb
- rd rdr
- Read-Host Receive-Job
- Register-EngineEvent Register-ObjectEvent
- Register-PSSessionConfiguration Register-WmiEvent
- Remove-Computer Remove-Event
- Remove-EventLog Remove-Item
- Remove-ItemProperty Remove-Job
- Remove-Module Remove-PSBreakpoint
- Remove-PSDrive Remove-PSSession
- Remove-PSSnapin Remove-Variable
- Remove-WmiObject Remove-WSManInstance
- ren Rename-Item
- Rename-ItemProperty Reset-ComputerMachinePassword
- Resolve-Path Restart-Computer
- Restart-Service Restore-Computer
- Resume-Service ri
- rjb rm
- rmdir rmo
- rni rnp
- rp rsn
- rsnp rv
- rvpa rwmi
- S: sajb
- sal saps
- sasv sbp
- sc select
- Select-Object Select-String
- Select-Xml Send-MailMessage
- set Set-Acl
- Set-Alias Set-AuthenticodeSignature
- Set-Content Set-Date
- Set-ExecutionPolicy Set-Item
- Set-ItemProperty Set-Location
- Set-PSBreakpoint Set-PSDebug
- Set-PSSessionConfiguration Set-Service
- Set-StrictMode Set-TraceSource
- Set-Variable Set-WmiInstance
- Set-WSManInstance Set-WSManQuickConfig
- Show-EventLog si
- sl sleep
- sort Sort-Object
- sp spjb
- Split-Path spps
- spsv start
- Start-Job Start-Process
- Start-Service Start-Sleep
- Start-Transaction Start-Transcript
- Stop-Computer Stop-Job
- Stop-Process Stop-Service
- Stop-Transcript Suspend-Service
- sv swmi
- T: TabExpansion
- tee Tee-Object
- Test-ComputerSecureChannel Test-Connection
- Test-ModuleManifest Test-Path
- Test-WSMan Trace-Command
- type U:
- Undo-Transaction Unregister-Event
- Unregister-PSSessionConfiguration Update-FormatData
- Update-List Update-TypeData
- Use-Transaction V:
- W: Wait-Event
- Wait-Job Wait-Process
- where Where-Object
- wjb write
- Write-Debug Write-Error
- Write-EventLog Write-Host
- Write-Output Write-Progress
- Write-Verbose Write-Warning
- X: Y:
- Z:

这里我们发现,format-wide仅输出了name项。那么我们如果要输出别的项怎么办呢? 此时可以利用format-wide的 -property。
Exp: 利用format-wide 的property参数输出comandtype信息。

- PS C:\Users\vol_20120330> get-command | format-wide -property commandtype
- Alias Alias
- Function Alias
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Alias Function
- Function Alias
- Alias Function
- Function Alias
- Cmdlet Alias
- Alias Cmdlet
- Cmdlet Cmdlet
- Function Cmdlet
- Cmdlet Cmdlet
- Alias Alias
- Alias Alias
- Alias Alias
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Alias
- Cmdlet Cmdlet
- Alias Alias
- Alias Alias
- Function Alias
- Cmdlet Alias
- Alias Alias
- Cmdlet Cmdlet
- Function Cmdlet
- Cmdlet Cmdlet
- Function Alias
- Alias Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Alias
- Alias Alias
- Alias Alias
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Alias
- Function Alias
- Alias Alias
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Alias
- Alias Function
- Alias Alias
- Alias Alias
- Alias Alias
- Alias Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Function
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Alias Alias
- Alias Alias
- Alias Alias
- Alias Alias
- Alias Cmdlet
- Alias Alias
- Alias Alias
- Alias Alias
- Alias Function
- Function Alias
- Function Alias
- Alias Alias
- Alias Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Function Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Alias
- Alias Alias
- Alias Alias
- Alias Function
- Cmdlet Function
- Alias Function
- Cmdlet Alias
- Alias Function
- Alias Alias
- Alias Cmdlet
- Cmdlet Alias
- Function Function
- Alias Alias
- Cmdlet Cmdlet
- Alias Alias
- Function Alias
- Alias Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Alias Alias
- Alias Alias
- Function Alias
- Alias Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Function Alias
- Cmdlet Function
- Alias Function
- Alias Cmdlet
- Alias Function
- Alias Function
- Alias Alias
- Alias Alias
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Alias Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Alias
- Alias Alias
- Alias Alias
- Alias Alias
- Alias Alias
- Alias Alias
- Alias Alias
- Function Alias
- Alias Alias
- Alias Alias
- Alias Alias
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Alias Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Alias
- Alias Alias
- Alias Cmdlet
- Alias Alias
- Cmdlet Alias
- Alias Alias
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Alias Alias
- Function Function
- Alias Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Alias Function
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Function
- Function Cmdlet
- Cmdlet Cmdlet
- Alias Cmdlet
- Alias Alias
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Cmdlet Cmdlet
- Function Function
- Function

我们还可以对format-wide的输出格式进一步进行格式化,可以指定输出的列数。
Exp: 通过colum参数指定输出的列数

- PS C:\Users\vol_20120330> get-command | format-wide -property commandtype -colum 6
- Alias Alias Function Alias Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Alias Function
- Function Alias Alias Function Function Alias
- Cmdlet Alias Alias Cmdlet Cmdlet Cmdlet
- Function Cmdlet Cmdlet Cmdlet Alias Alias
- Alias Alias Alias Alias Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Alias Cmdlet Cmdlet
- Alias Alias Alias Alias Function Alias
- Cmdlet Alias Alias Alias Cmdlet Cmdlet
- Function Cmdlet Cmdlet Cmdlet Function Alias
- Alias Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Alias Alias Alias Alias Alias
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Alias Function Alias
- Alias Alias Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Alias Alias Function Alias Alias
- Alias Alias Alias Alias Alias Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Function
- Cmdlet Cmdlet Cmdlet Cmdlet Alias Alias
- Alias Alias Alias Alias Alias Alias
- Alias Cmdlet Alias Alias Alias Alias
- Alias Alias Alias Function Function Alias
- Function Alias Alias Alias Alias Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Function Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Alias Alias Alias Alias Alias
- Alias Function Cmdlet Function Alias Function
- Cmdlet Alias Alias Function Alias Alias
- Alias Cmdlet Cmdlet Alias Function Function
- Alias Alias Cmdlet Cmdlet Alias Alias
- Function Alias Alias Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Alias Alias Alias Alias
- Function Alias Alias Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Function Alias
- Cmdlet Function Alias Function Alias Cmdlet
- Alias Function Alias Function Alias Alias
- Alias Alias Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Alias Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Alias Alias Alias Alias Alias
- Alias Alias Alias Alias Alias Alias
- Alias Alias Function Alias Alias Alias
- Alias Alias Alias Alias Cmdlet Cmdlet
- Cmdlet Cmdlet Alias Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Alias
- Alias Alias Alias Cmdlet Alias Alias
- Cmdlet Alias Alias Alias Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Alias Alias
- Function Function Alias Cmdlet Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Alias Function
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Cmdlet Function Function Cmdlet Cmdlet Cmdlet
- Alias Cmdlet Alias Alias Cmdlet Cmdlet
- Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet Cmdlet
- Function Function Function

3、2 format-list
format-list以列表的形式输出信息,这里主要介绍两个特点
3、2、1 format-list的 property参数可以指定输出的属性多少
Exp:

- PS C:\Users\vol_20120330> get-location | format-list
- Drive : C
- Provider : Microsoft.PowerShell.Core\FileSystem
- ProviderPath : C:\Users\vol_20120330
- Path : C:\Users\vol_20120330

Exp: 通过property参数仅输出path属性
- PS C:\Users\vol_20120330> get-location | format-list -property path
- Path : C:\Users\vol_20120330
3、2、2 利用 * 输出所有属性

PS C:\Users\vol_20120330> get-location | format-list -property *
Drive : C
Provider : Microsoft.PowerShell.Core\FileSystem
ProviderPath : C:\Users\vol_20120330
Path : C:\Users\vol_20120330

3、3 format-table
format-table以表格的形式输出信息。
Exp:利用format-table格式化输出当前路径信息
- PS C:\Users\vol_20120330> get-location | format-table
- Path
- ----
- C:\Users\vol_20120330
乍一看,这个输出的信息量减少了, 其实这都是默认输出属性的原因,我们可以通过参数来控制输出。
Exp:

- ____________________________________________________________________________
- PS C:\Users\vol_20120330> get-process | format-table
- Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
- ------- ------ ----- ----- ----- ------ -- -----------
- 117 5 4924 1540 111 0.02 2900 acrotray
- 131 5 15904 7696 45 1036 audiodg
- 185 9 11704 3036 119 1580 BSQLServer
- 135 11 35580 14872 155 13.88 3780 chrome
- 910 26 52736 85220 313 268.93 4316 chrome
- 139 21 195280 162376 307 251.61 4500 chrome
- 176 8 7316 3900 166 20.76 4772 chrome
- 158 16 94648 71892 213 104.15 4948 chrome
- 730 17 80972 42784 320 89.81 5760 chrome
- 122 5 3436 2244 122 0.12 2824 conhost
- 533 6 1408 1208 69 432 csrss
- 552 11 2292 9128 227 516 csrss
- 126 8 32976 17836 119 271.49 2628 dwm
- 170 9 5304 5260 139 0.94 2916 egui
- 382 15 74732 54832 172 1732 ekrn
- 780 39 31624 15112 263 31.54 2668 explorer
- 247 12 44640 25340 219 275.76 820 Foxit Reader
- 0 0 0 24 0 0 Idle
- 444 25 23444 16692 253 102.46 3848 iku
- 489 53 36164 29580 210 117.62 4016 ikuacc
- 328 14 8760 6084 197 0.51 3868 ikucmc
- 764 14 3400 3816 34 616 lsass
- 144 4 1516 1636 18 624 lsm
- 464 24 164724 130944 471 296.96 6084 powershell_ise
- 150 6 11892 3804 119 5604 PresentationFontCache
- 818 28 102380 28340 341 672.15 5944 QQPlayer
- 127 7 6732 2564 134 0.58 3456 rundll32
- 666 19 29068 17500 129 3656 SearchIndexer
- 269 9 5308 3900 44 564 services
- 33 1 316 300 4 328 smss
- 153 6 3268 3820 68 0.34 2952 SogouCloud
- 322 11 5160 3128 75 1412 spoolsv
- 381 15 44840 2944 1524 1808 sqlservr
- 87 4 1460 1452 30 1892 sqlwriter
- 374 7 3060 3224 43 732 svchost
- 339 10 3364 3156 31 812 svchost
- 512 13 14608 8320 63 904 svchost
- 718 20 50532 45520 135 936 svchost
- 1274 31 19076 14960 146 964 svchost
- 286 10 3636 2744 34 1112 svchost
- 463 17 11640 5816 68 1252 svchost
- 322 25 9780 5032 51 1500 svchost
- 105 4 1416 1388 29 1932 svchost
- 128 8 1904 1416 29 2300 svchost
- 236 12 3552 3188 66 2640 svchost
- 332 19 77552 8588 145 3088 svchost
- 218 8 11844 4432 133 58.50 2880 SynTPEnh
- 101 4 2504 1300 106 3572 SynTPHelper
- 125 5 5136 1268 110 0.05 3252 SynTPLpr
- 627 0 48 364 2 4 System
- 131 5 3004 7164 108 3840 taskeng
- 255 10 8252 3152 128 0.39 2788 taskhost
- 170 8 4720 9868 71 5156 taskhost
- 83 5 1140 1212 43 508 wininit
- 116 4 2216 1164 49 596 winlogon
- 216 7 9156 14044 66 1900 WmiPrvSE
- 447 26 7680 7144 123 2064 wmpnetwk
- 198 5 1536 1408 34 2344 WUDFHost

3、3、1 利用property参数控制输出的属性
Exp:

- PS C:\Users\vol_20120330> get-process | format-table -property path,cpu,id,pm
- Path CPU Id PM
- ---- --- -- --
- C:\Program Files... 0.0156001 2900 5042176
- 1036 16285696
- 1580 11984896
- C:\Users\vol_201... 13.884089 3780 36433920
- C:\Users\vol_201... 270.6929352 4316 54067200
- C:\Users\vol_201... 256.1068417 4500 181755904
- C:\Users\vol_201... 20.9821345 4772 7495680
- C:\Users\vol_201... 104.8794723 4948 95870976
- C:\Users\vol_201... 89.9189764 5760 82915328
- C:\Windows\syste... 0.1248008 2824 3518464
- 432 1441792
- 516 2347008
- C:\Windows\syste... 272.8145488 2628 33767424
- C:\Program Files... 0.936006 2916 5431296
- 1732 76525568
- C:\Windows\Explo... 31.6994032 2668 32452608
- C:\Program Files... 275.7629677 820 45711360
- 0 0
- C:\Program Files... 102.7734588 3848 24023040
- C:\Program Files... 118.2799582 4016 37036032
- C:\Program Files... 0.5148033 3868 8970240
- 616 3481600
- 624 1597440
- C:\Windows\syste... 305.0755556 6084 169136128
- 5604 12177408
- C:\Program Files... 676.9351393 5944 104837120
- C:\Windows\syste... 0.5772037 3456 6893568
- 3656 29736960
- 564 5378048
- 328 323584
- C:\Program Files... 0.3432022 2952 3346432
- 1412 5283840
- 1808 45916160
- 1892 1495040
- 732 3133440
- 812 3444736
- 904 14987264
- 936 52178944
- 964 19533824
- 1112 3723264
- 1252 11919360
- 1500 10014720
- 1932 1449984
- 2300 1949696
- 2640 3493888
- 3088 79384576
- C:\Program Files... 59.4207809 2880 12128256
- 3572 2564096
- C:\Program Files... 0.0468003 3252 5259264
- 4 49152
- 3840 3076096
- C:\Windows\syste... 0.3900025 2788 8450048
- 5156 4833280
- 508 1167360
- 596 2269184
- 1900 9375744
- 2064 7884800
- 2344 1572864
- ________________________

可以发现通过使用property参数,可以输出默认没有的path属性,同时将其他一些属性忽略了。我们还发现path属性输出的时候么有完整的信息,
这样不利于我们查看,有没有办法全部将其输出呢? 答案是:有,通过Autosize参数就可以实现。
3、3、2 autosize参数
Exp:利用autosize参数将path属性完整输出

- PS C:\Users\vol_20120330> get-process | format-table -property path,cpu,id,pm -autosize
- 警告: 2 个列无法显示,已被删除。
- Path CPU
- ---- ---
- C:\Program Files\Adobe\Acrobat 9.0\Acrobat\acrotray.exe ...001
- C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...902
- C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...647
- C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...199
- C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...352
- C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...845
- C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...774
- C:\Windows\system32\conhost.exe ...008
- C:\Windows\system32\Dwm.exe ...648
- C:\Program Files\ESET\ESET Smart Security\egui.exe ...006
- C:\Windows\Explorer.EXE ...047
- C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe ...677
- C:\Program Files\YouKu\iku2\iku.exe ...612
- C:\Program Files\YouKu\common\ikuacc.exe ...649
- C:\Program Files\YouKu\common\ikucmc.exe ...033
- C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe ...806
- C:\Program Files\Tencent\QQPlayer\QQPlayer.exe ...942
- C:\Windows\system32\rundll32.exe ...037
- C:\Program Files\SogouInput\6.1.0.6700\SogouCloud.exe ...022
- C:\Program Files\Synaptics\SynTP\SynTPEnh.exe ...899
- C:\Program Files\Synaptics\SynTP\SynTPLpr.exe ...003
- C:\Windows\system32\taskhost.exe

我们发现path完整输出了,但是其他的信息就被忽略了,PS默认最前输出的列最重要,而后面输出的相对不重要,当不能完整输出的时候,就将不重要的信息省略。
3、3、3 wrap参数
wrap参数用来将输出信息换行输出。

- PS C:\Users\vol_20120330> get-process | format-table -property cpu,id,pm,path -wrap
- CPU Id PM Path
- --- -- -- ----
- 0.0156001 2900 5042176 C:\Program Files\Ad
- obe\Acrobat 9.0\Acr
- obat\acrotray.exe
- 1036 16285696
- 1580 11984896
- 14.2740915 3780 36433920 C:\Users\vol_201203
- 30\AppData\Local\Go
- ogle\Chrome\Applica
- tion\chrome.exe
- 284.3430227 4316 54341632 C:\Users\vol_201203
- 30\AppData\Local\Go
- ogle\Chrome\Applica
- tion\chrome.exe
- 280.0841954 4500 240979968 C:\Users\vol_201203
- 30\AppData\Local\Go
- ogle\Chrome\Applica
- tion\chrome.exe
- 21.2785364 4772 7495680 C:\Users\vol_201203
- 30\AppData\Local\Go
- ogle\Chrome\Applica
- tion\chrome.exe
- 107.0790864 4948 96923648 C:\Users\vol_201203
- 30\AppData\Local\Go
- ogle\Chrome\Applica
- tion\chrome.exe
- 90.2153783 5760 82915328 C:\Users\vol_201203
- 30\AppData\Local\Go
- ogle\Chrome\Applica
- tion\chrome.exe
- 0.1248008 2824 3518464 C:\Windows\system32
- \conhost.exe
- 432 1441792
- 516 2351104
- 277.7129802 2628 33771520 C:\Windows\system32
- \Dwm.exe
- 0.936006 2916 5431296 C:\Program Files\ES
- ET\ESET Smart Secur
- ity\egui.exe
- 1732 76525568
- 32.136206 2668 32382976 C:\Windows\Explorer
- .EXE
- 275.7785678 820 45711360 C:\Program Files\Fo
- xit Software\Foxit
- Reader\Foxit Reader
- .exe
- 0 0
- 103.9746665 3848 24006656 C:\Program Files\Yo
- uKu\iku2\iku.exe
- 121.1035763 4016 32854016 C:\Program Files\Yo
- uKu\common\ikuacc.e
- xe
- 0.5148033 3868 8970240 C:\Program Files\Yo
- uKu\common\ikucmc.e
- xe
- 616 3481600
- 624 1552384
- 318.6320425 6084 169525248 C:\Windows\system32
- \WindowsPowerShell\
- v1.0\PowerShell_ISE
- .exe
- 5604 12177408
- 696.0452618 5944 105066496 C:\Program Files\Te
- ncent\QQPlayer\QQPl
- ayer.exe
- 0.5772037 3456 6893568 C:\Windows\system32
- \rundll32.exe
- 3656 27095040
- 564 5406720
- 328 323584
- 0.3588023 2952 3346432 C:\Program Files\So
- gouInput\6.1.0.6700
- \SogouCloud.exe
- 1412 5283840
- 1808 45916160
- 1892 1495040
- 732 3133440
- 812 3416064
- 904 14987264
- 936 52178944
- 964 19566592
- 1112 3723264
- 1252 11919360
- 1500 10014720
- 1932 1449984
- 2300 1949696
- 2640 3493888
- 3088 79384576
- 62.0727979 2880 12128256 C:\Program Files\Sy
- naptics\SynTP\SynTP
- Enh.exe
- 3572 2564096
- 0.0468003 3252 5259264 C:\Program Files\Sy
- naptics\SynTP\SynTP
- Lpr.exe
- 4 49152
- 0.3900025 2788 8478720 C:\Windows\system32
- \taskhost.exe
- 508 1167360
- 596 2269184
- 1900 9539584
- 2064 7864320
- 2344 1572864

可以发现最后一列path的输出wrap输出了。
3、3、4 groupby参数
format-table 通过groupby参数还支持分组输出,实现选择功能。这里就不举例了。
4、小结
可以发现PS的帮助系统功能很强大,而且其管道功能也很强大。
格式化输出命令基于对象属性,使用最多的参数是property。
待续..................
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输的更多相关文章
- PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念 据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量 ...
- PowerShell_零基础自学课程_1_初识PowerShell
欢迎转载本系列文章:转载请注明出处:www.cnblogs.com/volcanol 自从微软推出.Net以来,微软旗下的windows体系就发生了很大的变化,首先是操作系统的界面的变化,例如vist ...
- PowerShell_零基础自学课程_8_高级主题:WMI对象和COM组件
本系列文章从最初的初识开始,基本上可以完成一些简单的系统管理了,为了更方便的管理系统,同时为了更好的发掘系统的性能,就需要用到系统提供 的一些高级特性,在Windows Server系列的OS中,如果 ...
- PowerShell_零基础自学课程_3_如何利用Powershell ISE调试PS脚本
微软在推出PS的同时,没有忘记其一贯的作风,什么东东都弄一个IDE环境,这不微软没有忘记给PS也来一个IDE的环境, 通过这个IDE环境,可以建立psl文件,可以调试psl文件. 1.IDE界面 我们 ...
- PowerShell_零基础自学课程_9_高级主题:静态类和类的操作
上次我们说到了,wmi对象和com组件,今天我们继续来看PS中对象的相关内容.主要说一下静态对象和对象的基本操作. 一.静态对象 在PS中有一类特殊的对象,我们不能同过这些类创建新的对象,这些类是不能 ...
- PowerShell_零基础自学课程_2_Powershell与Cmd以及Unix/Linux Shell
上篇文章我说道,windows为了改变用户对其console界面的诟病,于是就从windows vista开始,计划要改变这种局面,于是就有 了Powershell的出现. 1.兼容shell命令 ...
- Android零基础入门第19节:Button使用详解
原文:Android零基础入门第19节:Button使用详解 Button(按钮)是Android开发中使用非常频繁的组件,主要是在UI界面上生成一个按钮,该按钮可以供用户单击,当用户单击按钮时,按钮 ...
- Android零基础入门第80节:Intent 属性详解(下)
上一期学习了Intent的前三个属性,本期接着学习其余四个属性,以及Android系统常用内置组件的启动. 四.Data和Type属性 Data属性通常用于向Action属性提供操作的数据.Data属 ...
- Android零基础入门第79节:Intent 属性详解(上)
Android应用将会根据Intent来启动指定组件,至于到底启动哪个组件,则取决于Intent的各属性.本期将详细介绍Intent的各属性值,以及 Android如何根据不同属性值来启动相应的组件. ...
随机推荐
- cf437B The Child and Set
B. The Child and Set time limit per test 1 second memory limit per test 256 megabytes input standard ...
- JFrame画图基础和事件监听
消息框 JOptionPane.showMessageDialog(mine.this, "删除不成功!"); 画图 class MyJPanel extends JPanel / ...
- Best Cow Line (POJ 3617)
题目: 给定长度为N的字符串S,要构造一个长度为N的字符串T.起初,T是一个空串,随后反复进行下列任意操作. ·从S的头部删除一个字符,加到T的尾部 ·从S的尾部删除一个字符,加到T的尾部 目标是要构 ...
- Bring it on
I am going to open a whole new English Blog here. Most blogs here would be computer technologies, in ...
- Java 四种线程池的用法分析
1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...
- Spring整合Shiro做权限控制模块详细案例分析
1.引入Shiro的Maven依赖 <!-- Spring 整合Shiro需要的依赖 --> <dependency> <groupId>org.apache.sh ...
- hdu 5159 Card (期望)
Problem Description There are x cards on the desk, they are numbered from 1 to x. The score of the c ...
- mysql语句添加索引
1.PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2. ...
- [原创]Web前端开发——让ie 7 8支持表单的placeholder属性
今天在写页面的时候,测试低版本浏览器时,发现input写的placeholder显示的是空白,所以特意写了一个普遍试用的方法来让低版本浏览器支持这个属性. 博主建了一个技术共享qq群:,因为目前人数还 ...
- java通过jsp的Excel导出
在项目中一般导出报表用poi,可是假设你不想用框架就用简单的jsp也能够实现报表导出.并且实现起来还特别简单. 先看一下效果截图: 点击导出后的效果截图: 详细实现: 第一:在页面的列表页面中就是普通 ...