如何仅在Get-ExecutionPolicy中打印范围和策略项?

时间:2018-12-07 23:30:49

标签: windows powershell powershell-v3.0

对于Windows大师来说,这应该是微不足道的,但对于* nix历史学家来说却似乎令人生畏。

我只想打印表中的ScopeExecutionPolicy值,仅 ,这些值是通过

获得的:
# Actual output:
(Get-ExecutionPolicy -List)

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine          Bypass


# Expected output:
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine          Bypass

这对Bash来说是微不足道的,只需将其输送到tail +4。根据其他帖子,PS等效项应为| Select-Object -Last 5,但这确实行不通。

如何在纯PowerShell中执行此操作?

我可以分别通过以下方式获取每个

(Get-ExecutionPolicy -List).Scope
(Get-ExecutionPolicy -List).ExecutionPolicy

但是当再次将它们放在一起时,这看起来很难看。

2 个答案:

答案 0 :(得分:4)

Get-ExecutionPolicy -List | Format-Table -hideTableHeader

答案 1 :(得分:3)

为扩展mhhollomon的答案,PowerShell具有基于存放在其文件夹中的.xml文件的对象的默认输出。对于Microsoft.PowerShell.ExecutionPolicy输出的Get-ExecutionPolicy对象,如果未明确指定其他格式,则默认情况下使用Format-Table。由于该操作发生在流水线的末尾,因此您尝试的任何Select-Object命令都将在流水线的末尾发生,因此,您只需要移除Microsoft.PowerShell.ExecutionPolicy对象就可以到达流水线的末尾。剩余的对象到达管道的末尾,然后脚本引擎检查应该如何输出它们,并使用剩余的对象生成一个表。