我正在运行PS命令get-Keyproperty,该命令以下面的表格式返回结果”

Key                  Label                          Policy     Running  Required
---                  -----                          ------     -------  --------
abc                 UI                               on         True     False
efg                 UI                               off        True     False

我想检索Policy的值on
如何检索Policy abcKey值?

我正在运行get-Keyproperty | Select-Object abc,但无法正常工作。

最佳答案

要获取Policy的值,请尝试运行

Get-Keyproperty | Select-Object -ExpandProperty Policy

即使上面的命令是推荐的方法,您也可以使用(Get-Keyproperty).Policy获得相同的结果。

如果要检查值是否匹配“on”,请执行(Get-Keyproperty | Select-Object -ExpandProperty Policy) -eq "on"
如果您想要某个条目的Policy值,则可以:
  • 在表中的位置上选择条目
    (Get-Keyproperty | Select-Object -ExpandProperty Policy)[0]
  • 或通过在Key的值上找到它
    Get-Keyproperty | Where-Object {$_.Key -eq "abc" } | Select-Object -ExpandProperty Policy
    如评论中所述,相同命令的一种较短方法是
    (Get-Keyproperty | ? Key -eq "abc").Policy?是别名(Get-Alias ?),而{script block}仅对于更复杂的表达式是必需的,然后需要$_.Key$PSItem.Key(在PSv3中引入)表示法;两者都是管道中当前对象的同义词。参见Get-Help Where-Object
  • 关于powershell - 如何从PS输出中过滤出特定值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50982511/

    10-12 14:38