Использование конвейера PowerShell

Опубликовано: 18 Марта, 2023

Этот совет был предоставлен в нашем информационном бюллетене WServerNews Эшли Макглоун, ведущим специалистом по эксплуатации в Microsoft.

Знаете ли вы, что PowerShell общедоступен и используется уже около семи лет? Звучит уже не так «по-новому», не так ли? Если вы все еще ждете изучения PowerShell, вам следует начать немедленно. Это ключевой набор навыков, который должен знать каждый ИТ-специалист. Это станет для вас карьерным отличием.

Изучая PowerShell, вы обнаружите, что «конвейер» — одна из его самых мощных функций. Вы можете объединить несколько команд в однострочный шедевр (это может занять более 50 строк VBScript). Конвейеры используют символ вертикальной черты ( | ) для отправки выходных данных команды слева в качестве входных данных для команды справа. Вы можете подключить столько командлетов, сколько захотите, вплотную друг к другу. Вот пример:

PS C:> Get-GPO -All | Where-Object {$_.ModificationTime -gt (Get-Date).AddDays(-30)} | Backup-GPO -Путь C:GPOBackups

Давайте разберем это:

  1. Получить список всех объектов групповой политики [PIPE]
  2. Отфильтровать те, которые были изменены за последние 30 дней [PIPE]
  3. Резервное копирование отфильтрованных объектов групповой политики в списке

Здесь важно помнить, что нужно структурировать команды в правильном порядке. Для этого я рекомендую поговорку старой школы информатики 101: Ввод | процесс | Выход. Начните с вашего вклада. Направьте к одному или нескольким командлетам обработки. Затем отправьте вывод в файл, на экран и т. д. НИКОГДА не помещайте команду Format-* в середину конвейера. Это как пересечь потоки. Это испортит всю строку. Разработчики PowerShell используют девиз «Фильтровать слева, форматировать справа».

Вот несколько примеров командлетов по этим трем категориям:

  • Ввод — Получить-*, Импорт-*
  • Процесс – Группировать-Объект, Где-Объект, Сортировать-Объект, Выбрать-Объект
  • Вывод — Set-*, Export-*, Out-*, Format-*, Write-*, ConvertTo-*

Помните об этой концепции при создании однострочников PowerShell: Input | процесс | Выход. Это облегчит вам жизнь, и вы быстро станете рок-звездой PowerShell Pipeline. Наслаждаться!

Для получения дополнительной помощи по этой теме откройте консоль PowerShell и введите: «Справка about_Pipelines».

http://www.wservernews.com/subscribe.htm

http://www.mtit.com