Как напечатать только элементы Scope и Policy в Get-ExecutionPolicy? - PullRequest
0 голосов
/ 08 декабря 2018

Это должно быть тривиально для гуру Windows, но, кажется, довольно сложно для * nix историка.

Я хочу напечатать только значения Scope и ExecutionPolicy в таблице, полученные:

# 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 голосов
/ 08 декабря 2018

Чтобы расширить ответ mhhollomon, PowerShell имеет вывод по умолчанию для объектов на основе XML-файлов, хранящихся в его папке.Для Microsoft.PowerShell.ExecutionPolicy объектов, выводимых Get-ExecutionPolicy, по умолчанию используется Format-Table, если явно не указано другое форматирование.Так как это происходит в конце конвейера, любые команды Select-Object, которые вы пытались выполнить, будут выполняться до конца конвейера, поэтому вы только удаляете объекты Microsoft.PowerShell.ExecutionPolicy до конца конвейера.Оставшиеся объекты доходят до конца конвейера, и механизм сценариев проверяет, как они должны выводиться, и генерирует таблицу с оставшимися объектами.

0 голосов
/ 08 декабря 2018
Get-ExecutionPolicy -List | Format-Table -hideTableHeader
...