我正在尝试使用PowerCLI搜索PoweredOff VM的列表。
我要搜索命令Get-Vm
的结果:
Vm01 PoweredOn 1 16 Vm02 PoweredOff 1 16 etc.
我想在此列表中搜索“ PoweredOff”,但是如果我键入以下内容,PowerShell Sls
似乎不起作用:
Get-Vm | sls PoweredOff
它不会显示PoweredOff虚拟机。谁能提供任何指导,以输出要搜索的文本流(而不是要搜索的对象列表)?
答案 0 :(得分:1)
PowerShell cmdlet返回对象,而不是简单的文本输出。您可以使用Where-Object
cmdlet按特定属性的值过滤输出。
Get-Vm | Where-Object { $_.PowerState -eq 'PoweredOff' }
表格或列表输出通常会向您显示属性名称。但是,并非默认情况下可能会显示所有对象的属性,有时有时会使特定类型的默认输出格式看起来与正常输出不同(例如Get-Process
输出)。您可以使用Get-Member
cmdlet获取对象的所有属性(和方法)的列表。添加参数-Force
以包括固有属性。添加参数-Static
以显示类方法而不是对象方法。
对于VMware的cmdlet,您还可以检查PowerCLI documentation,其中列出了cmdlet的返回类型。