Philip Wiki

Персональный wiki-сайт

Инструменты пользователя

Инструменты сайта


docs:blog:2022:01:defaultdisplaypropertyset

PowerShell. Скрытие и сохранение данных в конвейерах

Небольшая статья на тему скрытия и сохранения данных внутри конвейеров (pipeline)

Рассмотрим несколько вариантов, каждый из которых подходит под свои задачи.

Свойство DefaultDisplayPropertySet

Допустим нам нужно скрыть часть свойств в выводе окна Out-GridView, однако при этом нужно передать «скрытые» свойства дальше по конвейеру.

Реализация следующая:

Get-ChildItem ".\FileStore" |
Select-Object Name, PSPath |
Add-Member -MemberType MemberSet `
           -Name PSStandardMembers `
           -Value ([System.Management.Automation.PSPropertySet]::new(
                      'DefaultDisplayPropertySet',
                      [string[]]('Name')
                  )) `
           -PassThru |
Out-GridView -PassThru -Title "Quick Notes" |
Get-Content | Set-Clipboard

Источник

  • Шаг 1

    Передаём свойства Name и PSPath

  • Шаг 2

    Выводим в Out-GridView только свойство Name

  • Шаг 3

    На выходе снова можем работать со свойствами Name и PSPath выбранных (шаг 2) элементов

Параметр PipelineVariable

Параметр PipelineVariable позволяет сохранить в переменную «оригинальное значение» и передаст его дальше по конвейеру неизменным. Смотрим пример ниже:

Get-ADUser <username> -PipelineVariable user -Properties memberof | 
    Select-Object -ExpandProperty memberof | 
        Select-Object @{ n = 'Name'; e = { $user.Name }}, @{ n = 'MemberOf' ; e = { $PSItem -replace 'CN=|,(OU|CN)=.+' }}
  • Шаг 1

    Получаем данные о пользователе, дополнительно сохраняя их в переменной user

  • Шаг 2

    «Разворачиваем» список его групп («теряя» остальные данные)

  • Шаг 3

    Можем вернуться к переменной user которая содержит данные из 1 шага (потерянные, а точнее скрытые на 2)

Только авторизованные участники могут оставлять комментарии.
docs/blog/2022/01/defaultdisplaypropertyset.txt · Последнее изменение: 02.11.2022 21:22 — philip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki