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>] [-Force] [-Include <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]Copy-Item [-Path] <string[]> [[-Destination] <string>] [-Container] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]说明Copy-Item cmdlet 将项从一个位置复制到命名空间中的另一个位置。Copy-Item 不会删除所复制的项。该 cmdlet 可复制的特定项取决于可用的 Windows PowerShell 提供程序。例如,与 FileSystem 提供程序一起使用时,它可以复制文件和目录;与 Registry 提供程序一起使用时,它可以复制注册表项。相关链接Online version: http://go.microsoft.com/fwlink/?LinkID=113292about_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 itemCommandType 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 copyCommandType 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 aliasCommandType 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_Objects”)或别名(如“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 Developer Network) Library 中的“如何编写 Cmdlet 帮助”,网址是 http://go.microsoft.com/fwlink/?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 的 Path 参数来指定提供程序路径。有关详细信息,请参阅 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 <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <string[]>] [<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-help 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 对象的一个属性。此参数不影响概念性(“About_”)帮助的显示。-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 地址(统一资源标识符 [URI])。仅当帮助主题包含以“Http”或“Https”开头的 URI 并且系统上已安装 Internet 浏览器时,此参数才适用。有关在您编写的帮助主题中支持该功能的信息,请参阅 about_Comment_Based_Help,另请参阅 MSDN (Microsoft Developer Network) Library 中的“如何编写 Cmdlet 帮助”,网址是 http://go.microsoft.com/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-aliasC:\PS>help get-aliasC:\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 -pattern 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:\DataCollectionNAMEGet-ItemSYNOPSISGets a collection of Server objects for the local computer and any computers to which you have made a SQL Server PowerShell connection. ...C:\PS> cd SQLSERVER:\DataCollectionC:\PS> SQLSERVER:\DataCollection> get-help get-itemNAMEGet-ItemSYNOPSISGets a collection of Server objects for the local computer and any computers to which you have made a SQL Server PowerShell connection. ...C:\PS> Get-ItemNAMEGet-ItemSYNOPSISGets the item at the specified location....说明-----------此示例说明如何获取 Get-Item cmdlet 的帮助,了解如何在 Windows PowerShell SQL Server 提供程序的 DataCollection 节点中使用该 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 RestrictedSet-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to yoursystem. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.At line:1 char:20+ set-executionpolicy <<<< restricted说明-----------此命令尝试将 shell 的执行策略设置为“Restricted”。向注册表中写入了“Restricted”设置,但是,由于它与组策略冲突,因此该设置无效,即使该设置比组策略的限制更严格也是如此。-------------------------- 示例 3 --------------------------C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force说明-----------此命令从远程计算机获取执行策略并将该策略应用于本地计算机。此命令使用 Invoke-Command cmdlet 向远程计算机发送命令。由于可以通过管道将 ExecutionPolicy (Microsoft.PowerShell.ExecutionPolicy) 对象传递到 Set-ExecutionPolicy,因此此命令不需要 ExecutionPolicy 参数。该命令具有 Force 参数,该参数可禁止显示用户提示。-------------------------- 示例 4 --------------------------C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -forceC:\PS> get-executionpolicy -listScope ExecutionPolicy----- ---------------MachinePolicy UndefinedUserPolicy UndefinedProcess UndefinedCurrentUser AllSignedLocalMachine RemoteSignedC:\PS> get-executionpolicyAllSigned说明-----------此示例演示如何设置特定作用域的执行策略。第一个命令使用 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 aliasName 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> -detailedCHILDITEM CMDLETGet-ChildItemCONTENT CMDLETAdd-ContentClear-ContentGet-ContentSet-ContentITEM CMDLETClear-ItemCopy-ItemGet-ItemInvoke-ItemMove-ItemNew-ItemRemove-ItemRename-ItemSet-ItemITEMPROPERTY CMDLETClear-ItemPropertyCopy-ItemPropertyGet-ItemPropertyMove-ItemPropertyNew-ItemPropertyRemove-ItemPropertyRename-ItemPropertySet-ItemPropertyLOCATION CMDLETGet-LocationPop-LocationPush-LocationSet-LocationPATH CMDLETJoin-PathConvert-PathSplit-PathResolve-PathTest-PathPSDRIVE CMDLETGet-PSDriveNew-PSDriveRemove-PSDrivePSPROVIDER CMDLETGet-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_Locationsabout_Path_Syntax
1、5 获取提供程序的帮助
我们知道cmdlet都有一个提供程序来支持,同时整个系统的驱动器系统需要提供程序的支持。我们可以通过下面的命令来获取系统中提供程序的概要信息。
Exp:
PS C:\Users\vol_20120330> get-help -category providerName 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 编码的数字公钥证书对脚本进行签名。WindowsPowerShell 的签名功能并不完整,但这些功能允许用户对脚本进行签名,并允许 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-ChildItem 和 Invoke-Item cmdlet。另外,包括证书提供程序的 Windows PowerShell 安全性管理单元 (Microsoft.PowerShell.Security) 还包括获取和设置 Authenticode 签名和获取证书的管理单元。要获取安全性管理单元中的 cmdlet 列表,请键入“get-command -module *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\6B8223358119BB08840DEE50FD8AF9EA776CE66B | format-list -property *-------------------------- 示例 5 --------------------------此命令使用 Get-ChildItem cmdlet 获取计算机上的所有证书,并使用其 CodeSigningCert 动态参数来仅获取具有代码签名颁发机构的证书。get-childitem -path * -codesigningcert -recurse任务: 打开 MMC 证书管理单元-------------------------- 示例 1 --------------------------此命令打开 MMC 证书管理单元来管理指定的证书。invoke item cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE66B动态参数-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-memberTypeName: System.Management.Automation.PathInfoName 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 PowerShell 安装目录 ($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、ScriptProperty)。并非所有对象都具有成员的全部类型。如果您指定该对象所不具有的成员类型,则 Windows PowerShell 会返回 null 值。若要获取相关类型的成员(如所有扩展成员),请使用 View 参数。如果将 MemberType 参数与 Static 或 View 参数一起使用,Get-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-Member 将获取同时属于这两个集合的成员。如果在同一命令中使用 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 -staticTypeName: System.Management.Automation.PathInfoName 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 propertyTypeName: System.Management.Automation.PathInfoName 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 baseTypeName: System.Management.Automation.PathInfoName 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 commandtypeAlias 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 6Alias 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-listDrive : 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 pathPath : 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-tablePath ---- C:\Users\vol_20120330
乍一看,这个输出的信息量减少了, 其实这都是默认输出属性的原因,我们可以通过参数来控制输出。
Exp:
____________________________________________________________________________ PS C:\Users\vol_20120330> get-process | format-tableHandles 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 PresentationFontCache818 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,pmPath CPU Id PM ---- --- -- -- C:\Program Files... 0.0156001 2900 50421761036 162856961580 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 3518464432 1441792516 2347008 C:\Windows\syste... 272.8145488 2628 33767424 C:\Program Files... 0.936006 2916 54312961732 76525568 C:\Windows\Explo... 31.6994032 2668 32452608 C:\Program Files... 275.7629677 820 457113600 0 C:\Program Files... 102.7734588 3848 24023040 C:\Program Files... 118.2799582 4016 37036032 C:\Program Files... 0.5148033 3868 8970240616 3481600624 1597440 C:\Windows\syste... 305.0755556 6084 1691361285604 12177408 C:\Program Files... 676.9351393 5944 104837120 C:\Windows\syste... 0.5772037 3456 68935683656 29736960564 5378048328 323584 C:\Program Files... 0.3432022 2952 33464321412 52838401808 459161601892 1495040732 3133440812 3444736904 14987264936 52178944964 195338241112 37232641252 119193601500 100147201932 14499842300 19496962640 34938883088 79384576 C:\Program Files... 59.4207809 2880 121282563572 2564096 C:\Program Files... 0.0468003 3252 52592644 491523840 3076096 C:\Windows\syste... 0.3900025 2788 84500485156 4833280508 1167360596 22691841900 93757442064 78848002344 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 ...001C:\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 ...008C:\Windows\system32\Dwm.exe ...648 C:\Program Files\ESET\ESET Smart Security\egui.exe ...006C:\Windows\Explorer.EXE ...047 C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe ...677C:\Program Files\YouKu\iku2\iku.exe ...612 C:\Program Files\YouKu\common\ikuacc.exe ...649 C:\Program Files\YouKu\common\ikucmc.exe ...033C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe ...806C:\Program Files\Tencent\QQPlayer\QQPlayer.exe ...942 C:\Windows\system32\rundll32.exe ...037C:\Program Files\SogouInput\6.1.0.6700\SogouCloud.exe ...022C:\Program Files\Synaptics\SynTP\SynTPEnh.exe ...899C:\Program Files\Synaptics\SynTP\SynTPLpr.exe ...003C:\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 -wrapCPU Id PM Path --- -- -- ---- 0.0156001 2900 5042176 C:\Program Files\Adobe\Acrobat 9.0\Acrobat\acrotray.exe 1036 16285696 1580 11984896 14.2740915 3780 36433920 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe 284.3430227 4316 54341632 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe 280.0841954 4500 240979968 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe 21.2785364 4772 7495680 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe 107.0790864 4948 96923648 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe 90.2153783 5760 82915328 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\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\ESET\ESET Smart Security\egui.exe 1732 76525568 32.136206 2668 32382976 C:\Windows\Explorer.EXE 275.7785678 820 45711360 C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe 0 0 103.9746665 3848 24006656 C:\Program Files\YouKu\iku2\iku.exe 121.1035763 4016 32854016 C:\Program Files\YouKu\common\ikuacc.exe 0.5148033 3868 8970240 C:\Program Files\YouKu\common\ikucmc.exe 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\Tencent\QQPlayer\QQPlayer.exe 0.5772037 3456 6893568 C:\Windows\system32\rundll32.exe 3656 27095040 564 5406720 328 323584 0.3588023 2952 3346432 C:\Program Files\SogouInput\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\Synaptics\SynTP\SynTPEnh.exe 3572 2564096 0.0468003 3252 5259264 C:\Program Files\Synaptics\SynTP\SynTPLpr.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_6_零基础自学课程__6_PS中获取帮助信息详解、管道、格式化输
前些文章陆续的说了一些关于这些主题,但是讨论的都不够深入,今天我们深入的了解一下获取帮助信息.管道以及格式化输出的内容. 一.获取帮助信息 在PS中获取帮助信息,最常用的有: -? .get-comm ...
- PowerShell_零基础自学课程_1_初识PowerShell
欢迎转载本系列文章:转载请注明出处:www.cnblogs.com/volcanol 自从微软推出.Net以来,微软旗下的windows体系就发生了很大的变化,首先是操作系统的界面的变化,例如vist ...
- PowerShell_零基础自学课程_8_高级主题:WMI对象和COM组件
本系列文章从最初的初识开始,基本上可以完成一些简单的系统管理了,为了更方便的管理系统,同时为了更好的发掘系统的性能,就需要用到系统提供 的一些高级特性,在Windows Server系列的OS中,如果 ...
- [python opencv 计算机视觉零基础到实战] 四、了解色彩空间及其详解
一.学习目标 了解什么是色彩空间 了解opencv中色彩空间的转换 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[python opencv ...
- crashdumpandroid_Android 中Crash时如何获取异常信息详解及实例
Android 中Crash时如何获取异常信息详解 前言: 大家都知道,Android应用不可避免的会发生crash,无论你的程序写的多完美,总是无法完全避免crash的发生,可能是由于Android ...
- PowerShell_5_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念
据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量进行改变外,其环境的可自定义性相对来说很困难,而在Linux环境中,可以通过修改/etc目录下的某些配置文件 ...
- Node.js零基础自学(持续更新中)
1. Node.js时基于Chrome V8 引擎的JavaScript运行环境.官网:Node.jsNode.js® is a JavaScript runtime built on Chrome' ...
- PowerShell_8_零基础自学课程_8_高级主题:WMI对象和COM组件
本系列文章从最初的初识开始,基本上可以完成一些简单的系统管理了,为了更方便的管理系统,同时为了更好的发掘系统的性能,就需要用到系统提供 的一些高级特性,在Windows Server系列的OS中,如果 ...
- Mybatis零基础教程,Java访问数据库核心操作,详解Spring-boot整合Mybatis持久层!
1.前言 持久层是JavaEE中访问数据库的核心操作,Mybatis是一款优秀的持久层框架,诞生于2010年,2013年迁移至Github.它支持定制化 SQL.存储过程以及高级映射.MyBatis ...
最新文章
- 扎克伯格亲自做了26张PPT,员工效率提10倍,已被疯狂传阅
- What are HANA's models of cloud computing, and which should I choose?
- KlayGE 4.3开发计划
- Microsoft Build 2016 Day 1 记录
- 【Android开发】毛玻璃效果
- Your CPU supports instructions that this TensorFlow binary was not compiled to use AVX AVX2
- 实训09.11:java重点内容介绍
- 【HDU - 5883】The Best Path(判断欧拉回路)
- resnet系列+mobilenet v2+pytorch代码实现
- Java中什么时候throws_何时在Java方法声明中使用throws?
- 利用ros3d.js实现 turtlebot3 在web 端显示并导航
- SQL2005安装及链接
- Excel加载“宏”
- 计算机PS个人规划目标,这里有一份PS个人陈述写作规划
- win7计算机出现空白图标,Win7系统桌面图标显示异常变未知白色图标解决方法大全...
- 使用基于迭代的敏捷创建里程碑
- HDU 4699 Editor(双向链表)
- Qt5 QFileDialog中文英文交界处乱码问题
- 关于阿里云服务器密码重置和使用方法
- 基于Java的乐嘉网络商城系统(毕设)
热门文章
- python hook 微信_python实现微信跳一跳辅助工具步骤详解
- 三大运营商大数据运用
- AI算法实现武侠小说中的“绝世武功”——动作残影特效!
- PHP JWT token加密
- 更改MYSQL 单字段存储最大空间
- 腾讯云游戏使用方法(不需要下载客户端就可以玩英雄联盟)(旧电脑玩英雄联盟方法)
- HDU 2516 取石子游戏 斐波那契博弈
- 果汁机霍尔开关 MH251(原装正版)+双节升压充电 远翔FP6291(原装正版)
- 我需要几个变量来记录游戏声音大小,游戏音效大小,游戏是否静音,请帮我给这些变量取名...
- 【达摩院OpenVI】老片图像上色,一键开源体验