PowerShell 技能连载 - 研究 PowerShell 控制台输出
当您在 PowerShell 控制台中看到命令的结果时,通常仅显示部分信息。要查看完整的信息,您需要将其发送到 Select-Object
并使用 “*
“ 通配符显式选择所有属性:
1 | PS> Get-CimInstance -ClassName Win32_BIOS |
这是因为 PowerShell 包含的逻辑会自动仅选择对象的最重要属性,以使您专注于重要的事情。为了更好地理解它是如何工作的,这里有一些示例代码来探索 Get-Process
返回的数据。要研究其他 cmdlet,请将代码中的 “Get-Process
“ 替换为另一个 cmdlet 的名称:
1 | Install-Module -Name PSCommandDiscovery -Scope CurrentUser -Verbose |
该代码确定 cmdlet 发出的数据类型,然后找到定义该数据类型视图的 *.format.ps1xml 文件,并返回该定义的前 20 行:
1 | </ViewSelectedBy> |
尽管示例代码为了简单起见不会给出完整的定义,但它使您可以更好地了解幕后发生的事情:每当 cmdlet 返回类型为 System.Diagnostics.Process
的对象时,PowerShell 默认都会根据到公开的 XML 定义。
在上面的示例中更改 cmdlet 名称时,您也可以看到其他类型的定义。但是,为简单起见,示例代码仅搜索在 PowerShell 主目录中找到的 *.format.ps1xml 文件,而不在可能存在其他格式定义的所有模块位置中搜索。
注意:本技能仅适用于 Windows PowerShell。