为什么 "Get-Vm | Sls PoweredOff" 不对已关闭的虚拟机进行 grep?
Why does "Get-Vm | Sls PoweredOff" not grep for VMs that are Powered off?
我正在尝试使用 PowerCLI 搜索已关闭电源的虚拟机列表。
我要搜索命令的结果Get-Vm
:
Vm01 上电 1 16
Vm02 关机 1 16
等等
我想在此列表中搜索 "PoweredOff",但如果我键入以下内容,PowerShell Sls
似乎不起作用:
Get-Vm | sls PoweredOff
它不会显示已关闭电源的虚拟机。任何人都可以提供有关输出要搜索的文本流(而不是要搜索的对象列表)的任何指导吗?
PowerShell cmdlets return 对象,不是简单的文本输出。您可以使用 Where-Object
cmdlet 按特定属性的值过滤输出。
Get-Vm | Where-Object { $_.PowerState -eq 'PoweredOff' }
表格或列表输出通常会显示 属性 个名字。然而,并非所有对象的属性都可能默认显示,有时特定类型的默认输出格式看起来与正常输出不同(例如 Get-Process
输出)。您可以使用 Get-Member
cmdlet 获取对象的所有属性(和方法)的列表。添加参数 -Force
以包含固有属性。添加参数 -Static
以显示 class 方法而不是对象方法。
对于 VMware 的 cmdlet,您还可以查看 PowerCLI documentation,其中列出了 return 类型的 cmdlet。
我正在尝试使用 PowerCLI 搜索已关闭电源的虚拟机列表。
我要搜索命令的结果Get-Vm
:
Vm01 上电 1 16 Vm02 关机 1 16 等等
我想在此列表中搜索 "PoweredOff",但如果我键入以下内容,PowerShell Sls
似乎不起作用:
Get-Vm | sls PoweredOff
它不会显示已关闭电源的虚拟机。任何人都可以提供有关输出要搜索的文本流(而不是要搜索的对象列表)的任何指导吗?
PowerShell cmdlets return 对象,不是简单的文本输出。您可以使用 Where-Object
cmdlet 按特定属性的值过滤输出。
Get-Vm | Where-Object { $_.PowerState -eq 'PoweredOff' }
表格或列表输出通常会显示 属性 个名字。然而,并非所有对象的属性都可能默认显示,有时特定类型的默认输出格式看起来与正常输出不同(例如 Get-Process
输出)。您可以使用 Get-Member
cmdlet 获取对象的所有属性(和方法)的列表。添加参数 -Force
以包含固有属性。添加参数 -Static
以显示 class 方法而不是对象方法。
对于 VMware 的 cmdlet,您还可以查看 PowerCLI documentation,其中列出了 return 类型的 cmdlet。