前些文章陆续的说了一些关于这些主题,但是讨论的都不够深入,今天我们深入的了解一下获取帮助信息、管道以及格式化输出的内容。
一、获取帮助信息
在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。
待续..................