Windows powershell и windows powershell ise отличие

Обновлено: 04.07.2024

Оболочка - это программа, которая использует интерфейс командной строки или графический интерфейс пользователя и позволяет пользователям получать доступ к своим компьютерам и управлять ими путем ввода команд. Программа называется Shell, потому что это самый внешний уровень операционной системы. Оболочка действует как средство связи между пользователем и операционной системой.

PowerShell - это инструмент командной строки и сценариев в Windows 10. Он разработан корпорацией Microsoft и используется для автоматизации задач и настройки. управление. PowerShell ISE - это еще один инструмент, разработанный корпорацией Microsoft, который используется для создания, выполнения и отладки команд и сценариев. В PowerShell ISE ISE означает Integrated Scripting Environment . Следовательно, PowerShell ISE также включает некоторые расширенные функции, которых нет в Windows PowerShell.


В то время как PowerShell использует интерфейс командной строки ( CLI), PowerShell ISE использует графический пользовательский интерфейс (GUI). Поскольку графический интерфейс прост в использовании и понимании, пользователи могут выполнять и отлаживать команды и сценарии, не записывая все команды в интерфейсе командной строки. Помимо этого, есть еще несколько функций, которые делают PowerShell ISE более продвинутой, чем PowerShell. В этой статье показано различие между Windows PowerShell и Windows PowerShell ISE.

Что такое PowerShell ISE?

Давайте посмотрим на особенности PowerShell ISE:

  • Многострочное редактирование : с помощью этой функции вы можете вставить пустую строку под текущая строка на панели команд. Чтобы использовать функцию многострочного редактирования, вы должны нажать клавиши Shift + Enter на вашемклавиатура.
  • Выборочное выполнение : эта функция позволяет запускать часть сценария, выделяя текст. После выделения текста вам просто нужно нажать кнопку Выполнить сценарий . Клавиша F5 - это быстрый доступ к этой функции.
  • Контекстно-зависимая справка : открывает файл справки. Чтобы использовать эту функцию, введите Invoke-Item и затем нажмите клавишу F1.

Прочтите : Советы и хитрости Windows Terminal.

Разница между PowerShell и PowerShell ISE

Мы сравним эти инструменты на основе следующих свойств / функций:

1] Пользовательский интерфейс

В этой статье мы описали выше, что PowerShell имеет интерфейс командной строки, тогда как PowerShell ISE поставляется с графическим пользовательским интерфейсом. Благодаря этому PowerShell предлагает удобный интерфейс и прост в использовании и понимании для новичков.

Если вы сравните интерфейс обоих этих инструментов, вы обнаружите, что PowerShell ISE имеет привлекательный интерфейс с панель инструментов, панель меню, панель скриптов, панель консоли, функция нескольких вкладок и т. д.

2] Задачи

Поскольку в PowerShell ISE можно открывать несколько вкладок, это инструмент многозадачности. Вы можете запускать несколько команд и сценариев в PowerShell ISE на разных вкладках. Эта функция недоступна в PowerShell.

СОВЕТ : Posterpedia - отличное приложение для Microsoft Store, которое поможет вам разобраться в технологиях Microsoft.

3] Команды и сценарии редактирования

Редактировать скрипт в PowerShell ISE легко, поскольку он поставляется с рядом инструментов, которые вы можете использовать для редактирования. Если вы нажмете на меню Правка , вы увидите следующие функции:

  • Найти в скрипте
  • Найти следующее в скрипте
  • Найти предыдущее в скрипте
  • Заменить в скрипте
  • Перейти к строке
  • Перейти к совпадению

Эти функции экономят ваше время, упрощая процесс редактирования сценария. С другой стороны, меню «Правка» недоступно в PowerShell, что делает процесс редактирования скрипта немного трудоемким, если скрипт длинный.

Читать : Как установить и Используйте Windows PowerShell ISE.

4] Контекстно-зависимая справка

Функция контекстно-зависимой справки недоступна в PowerShell.

5] Надстройки команд

В PowerShell ISE панель надстроек команд доступна в правой части интерфейса. Вы можете найти определенную команду и вставить ее в панель консоли, нажав кнопку Вставить . Вы также можете отфильтровать команды, щелкнув раскрывающееся меню.

Оболочка - это программа, которая использует интерфейс командной строки или графический интерфейс пользователя и позволяет пользователям получать доступ к своим компьютерам и управлять ими путем ввода команд. Программа называется Shell, потому что это самый внешний уровень операционной системы. Оболочка действует как средство связи между пользователем и операционной системой.

PowerShell - это инструмент командной строки и сценариев в Windows 10. Он разработан корпорацией Microsoft и используется для автоматизации задач и настройки. управление. PowerShell ISE - это еще один инструмент, разработанный корпорацией Microsoft, который используется для создания, выполнения и отладки команд и сценариев. В PowerShell ISE ISE означает Integrated Scripting Environment . Следовательно, PowerShell ISE также включает некоторые расширенные функции, которых нет в Windows PowerShell.


В то время как PowerShell использует интерфейс командной строки ( CLI), PowerShell ISE использует графический пользовательский интерфейс (GUI). Поскольку графический интерфейс прост в использовании и понимании, пользователи могут выполнять и отлаживать команды и сценарии, не записывая все команды в интерфейсе командной строки. Помимо этого, есть еще несколько функций, которые делают PowerShell ISE более продвинутой, чем PowerShell. В этой статье показано различие между Windows PowerShell и Windows PowerShell ISE.

Что такое PowerShell ISE?

Давайте посмотрим на особенности PowerShell ISE:

  • Многострочное редактирование : с помощью этой функции вы можете вставить пустую строку под текущая строка на панели команд. Чтобы использовать функцию многострочного редактирования, вы должны нажать клавиши Shift + Enter на вашемклавиатура.
  • Выборочное выполнение : эта функция позволяет запускать часть сценария, выделяя текст. После выделения текста вам просто нужно нажать кнопку Выполнить сценарий . Клавиша F5 - это быстрый доступ к этой функции.
  • Контекстно-зависимая справка : открывает файл справки. Чтобы использовать эту функцию, введите Invoke-Item и затем нажмите клавишу F1.

Прочтите : Советы и хитрости Windows Terminal.

Разница между PowerShell и PowerShell ISE

Мы сравним эти инструменты на основе следующих свойств / функций:

1] Пользовательский интерфейс

В этой статье мы описали выше, что PowerShell имеет интерфейс командной строки, тогда как PowerShell ISE поставляется с графическим пользовательским интерфейсом. Благодаря этому PowerShell предлагает удобный интерфейс и прост в использовании и понимании для новичков.

Если вы сравните интерфейс обоих этих инструментов, вы обнаружите, что PowerShell ISE имеет привлекательный интерфейс с панель инструментов, панель меню, панель скриптов, панель консоли, функция нескольких вкладок и т. д.

2] Задачи

Поскольку в PowerShell ISE можно открывать несколько вкладок, это инструмент многозадачности. Вы можете запускать несколько команд и сценариев в PowerShell ISE на разных вкладках. Эта функция недоступна в PowerShell.

СОВЕТ : Posterpedia - отличное приложение для Microsoft Store, которое поможет вам разобраться в технологиях Microsoft.

3] Команды и сценарии редактирования

Редактировать скрипт в PowerShell ISE легко, поскольку он поставляется с рядом инструментов, которые вы можете использовать для редактирования. Если вы нажмете на меню Правка , вы увидите следующие функции:

  • Найти в скрипте
  • Найти следующее в скрипте
  • Найти предыдущее в скрипте
  • Заменить в скрипте
  • Перейти к строке
  • Перейти к совпадению

Эти функции экономят ваше время, упрощая процесс редактирования сценария. С другой стороны, меню «Правка» недоступно в PowerShell, что делает процесс редактирования скрипта немного трудоемким, если скрипт длинный.

Читать : Как установить и Используйте Windows PowerShell ISE.

4] Контекстно-зависимая справка

Функция контекстно-зависимой справки недоступна в PowerShell.

5] Надстройки команд

В PowerShell ISE панель надстроек команд доступна в правой части интерфейса. Вы можете найти определенную команду и вставить ее в панель консоли, нажав кнопку Вставить . Вы также можете отфильтровать команды, щелкнув раскрывающееся меню.

Windows PowerShell позволяет системным администраторам автоматизировать большинство рутинных задач. С ее помощью можно менять настройки, останавливать и запускать сервисы, а также производить обслуживание большинства установленных приложений. Воспринимать синее окошко как еще один интерпретатор команд было бы неправильно. Такой подход не отражает сути предложенных корпорацией Microsoft инноваций. На самом деле возможности Windows PowerShell гораздо шире: в небольшом цикле статей мы попробуем разобраться, чем решение Microsoft отличается от более привычных нам средств.




Основные возможности

Windows PowerShell позволяет:

  • Менять настройки операционной системы;
  • Управлять службами и процессами;
  • Настраивать роли и компоненты сервера;
  • Устанавливать программное обеспечение;
  • Управлять установленным ПО через специальные интерфейсы;
  • Встраивать исполняемые компоненты в сторонние программы;
  • Создавать сценарии для автоматизации задач администрирования;
  • Работать с файловой системой, реестром Windows, хранилищем сертификатов и т.д.

Оболочка и среда разработки

Существует Windows PowerShell в двух ипостасях: помимо эмулятора консоли с командной оболочкой есть интегрированная среда сценариев (Integrated Scripting Environment — ISE). Чтобы получить доступ к интерфейсу командной строки достаточно выбрать соответствующий ярлык в меню Windows или запустить powershell.exe из меню «Выполнить». На экране появится синее окошко, заметно отличающееся по возможностям от допотопного cmd.exe. Там есть автодополнение и другие фишки, привычные пользователям командных оболочек для Unix-систем.


Для работы с оболочкой нужно запомнить некоторые сочетания клавиш:

  • Стрелки вверх и вниз прокручивают историю для повтора ранее набранных команд;
  • Стрелка вправо в конце строки перенабирает предыдущую команду посимвольно;
  • Ctrl+Home удаляет набранный текст от позиции курсора до начала строки;
  • Ctrl+End удаляет текст от курсора до конца строки.


Windows PowerShell ISE является полноценной средой разработки с поддерживающим вкладки и подсветку синтаксиса редактором кода, конструктором команд, встроенным отладчиком и другими программистскими радостями. Если в редакторе среды разработки после имени команды написать знак дефис, вы получите в выпадающем списке все доступные параметры с указанием типа. Запустить PowerShell ISE можно либо через ярлык из системного меню, либо с помощью исполняемого файла powershell_ise.exe.


Командлеты

Помимо Get в командлетах для обозначения действий используются и другие глаголы (и не только глаголы, строго говоря). В списке ниже мы приведем несколько примеров:

Add — добавить;
Clear — очистить;
Enable — включить;
Disable — выключить;
New — создать;
Remove — удалить;
Set — задать;
Start — запустить;
Stop — остановить;
Export — экспортировать;
Import — импортировать.

Есть системные, пользовательские и опциональные командлеты: в результате выполнения все они возвращают объект или массив объектов. К регистру они не чувствительны, т.е. с точки зрения интерпретатора команд нет разницы между Get-Help и get-help. Для разделения используется символ ‘;’, но ставить его обязательно только если в одной строке выполняется несколько командлетов.

Командлеты Windows PowerShell группируются в модули (NetTCPIP, Hyper-V и т.д.), а для поиска по объекту и действию существует командлет Get-Command. Показать справку по нему можно так:


По умолчанию команда отображает краткую справку, но в командлеты при необходимости передаются параметры (аргументы). С их помощью можно, например, получить детальную (параметр -Detailed) или полную (параметр -Full) справку, а также вывести на экран примеры (параметр -Examples):


Справка в Windows PowerShell обновляется командлетом Update-Help. Если строка команд получается слишком длинной, аргументы командлета можно перенести на следующую, написав служебный символ ‘`’ и нажав Enter — просто закончить писать команду на одной строке и продолжить на другой не получится.

Ниже приведем несколько примеров распространенных командлетов:

Get-Process — показать запущенные в системе процессы;
Get-Service — показать службы и их статус;
Get-Content — вывести содержимое файла.

Для часто используемых командлетов и внешних утилит в Windows PowerShell есть короткие синонимы — алиасы (от англ. Alias). Например, dir — алиас Get-ChildItem. Есть в списке синонимов и аналоги команд из Unix-систем (ls, ps и т.д.), а командлет Get-Help вызывается командой help. Полный список синонимов можно посмотреть с помощью командлета Get-Alias:


Сценарии, функции, модули и язык PowerShell

Скрипты Windows PowerShell хранятся в виде обычных текстовых файлов с расширением .ps1. Запустить их двойным кликом нельзя: нужно правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Запустить в PowerShell». Из консоли придется либо указать полный путь к скрипту, либо перейти в соответствующий каталог и написать имя файла. Запуск сценариев также ограничен системной политикой, а для проверки текущих настроек можно использовать командлет Get-ExecutionPolicy, который выдаст одно из следующих значений:

Restricted — запуск сценариев запрещен (по умолчанию);
AllSigned — разрешен только запуск подписанных доверенным разработчиком сценариев;
RemoteSigned — разрешен запуск подписанных и собственных сценариев;
Unrestricted — разрешен запуск любых сценариев.

У администратора есть два варианта действий. Наиболее безопасный предполагает подписание скриптов, но это довольно серьезное колдунство — мы будем разбираться с ним в следующих статьях. Сейчас пойдем по пути наименьшего сопротивления и поменяем политику:


PowerShell для этого придется запустить от имени администратора, хотя с помощью специального параметра можно изменить политику и для текущего пользователя.

Пишутся скрипты на объектно-ориентированном языке программирования, команды которого именуются по тому же принципу, что и рассмотренные ранее командлеты: «Действие-Объект» («Глагол-Существительное»). Основное его предназначение — автоматизация задач администрирования, но это полноценный интерпретируемый язык, в котором есть все необходимые конструкции: условный переход, циклы, переменные, массивы, объекты, обработка ошибок и т.д. Для написания сценариев годится любой текстовый редактор, но удобнее всего запустить Windows PowerShell ISE.

В скрипт можно передавать параметры, делать их обязательными, а также задавать значения по умолчанию. Кроме того Windows PowerShell позволяет создать функции и вызывать их точно так же, как и командлеты: для этого используется конструкция Function и фигурные скобки. Сценарий с функциями называется модулем и имеет расширение .psm1. Модули должны храниться в каталогах, определенных в переменных окружения PowerShell. Посмотреть их можно при помощи следующей команды:

Конвейеры

В последнем примере мы применили знакомую пользователям оболочек для Unix-систем конструкцию. В Windows PowerShell вертикальная черта также позволяет передать выход одной команды на вход другой, но в реализации конвейера есть и существенная разница: речь здесь идет уже не о наборе символов или каком-то тексте. Встроенные командлеты или пользовательские функции возвращают объекты или массивы объектов, а также могут получать их на входе. Как в Bourne shell и его многочисленных последователях, в PowerShell с помощью конвейера упрощается выполнение сложных задач.

Простейший пример конвейера выглядит так:


Сначала выполняется командлет Get-Service, а потом все полученные им службы передаются на сортировку по свойству Status командлету Sort-Object. В какой именно аргумент передается результат работы предыдущего участка конвейера, зависит от его типа — обычно это InputObject. Подробнее этот вопрос будет рассматриваться в посвященной языку программирования PowerShell статье.

При желании цепочку можно продолжить и передать результат работы Sort-Object еще одному командлету (выполняться они будут слева направо). Кстати, пользователям Windows доступна и привычная всем юниксоидам конструкция для постраничного вывода:

Запуск задач в фоновом режиме

Довольно часто бывает нужно запустить некую команду в фоне, чтобы не дожидаться результата ее выполнения в сессии оболочки. В Windows PowerShell есть несколько командлетов на такой случай:

Start-Job — запуск фоновой задачи;
Stop-Job — остановка фоновой задачи;
Get-Job — просмотр списка фоновых задач;
Receive-Job — просмотр результата выполнения фоновой задачи;
Remove-Job — удаление фоновой задачи;
Wait-Job — перевод фоновой задачи обратно в консоль.

Для запуска фоновой задачи мы используем командлет Start-Job и в фигурных скобках указываем команду или набор команд:


Фоновыми задачами в Windows PowerShell можно манипулировать, зная их имена. Для начала научимся их отображать:


Теперь покажем результат работы задания Job1:


Всё довольно просто.

Удаленное выполнение команд

Windows PowerShell позволяет выполнять команды и сценарии не только на локальном, но и на удаленном компьютере и даже на целой группе машин. Для этого существует несколько способов:

  • У многих командлетов есть параметр -ComputerName , но таким способом не получится, например, создать конвейер;
  • Командлет Enter-PSSession позволяет создать на удаленной машине интерактивный сеанс;
  • С помощью командлета Invoke-Command можно выполнять команды или сценарии на одном или нескольких удаленных компьютерах.

Версии PowerShell

С момента первого релиза в 2006 году PowerShell серьезно изменился. Инструмент доступен для множества систем, работающих на разных аппаратных платформах (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux и OS X. Последний релиз 6.2 выпущен 10 января 2018 года. Написанные для более ранних версий скрипты с высокой вероятностью будут работать в более поздних, а вот с обратным переносом могут возникнуть проблемы, поскольку за годы развития в PowerShell появилось большое количество новых командлетов. Узнать версию установленной на компьютере командной оболочки можно с помощью свойства PSVersion встроенной переменной $PSVersionTable:


Также можно воспользоваться командлетом:


То же самое делается и с помощью командлета Get-Host. На самом деле вариантов множество, но для их применения нужно изучить язык программирования PowerShell, чем мы и займемся в следующей статье.

Итоги

Windows PowerShell позволяет системным администраторам автоматизировать большинство рутинных задач. С ее помощью можно менять настройки, останавливать и запускать сервисы, а также производить обслуживание большинства установленных приложений. Воспринимать синее окошко как еще один интерпретатор команд было бы неправильно. Такой подход не отражает сути предложенных корпорацией Microsoft инноваций. На самом деле возможности Windows PowerShell гораздо шире: в небольшом цикле статей мы попробуем разобраться, чем решение Microsoft отличается от более привычных нам средств.




Основные возможности

Windows PowerShell позволяет:

  • Менять настройки операционной системы;
  • Управлять службами и процессами;
  • Настраивать роли и компоненты сервера;
  • Устанавливать программное обеспечение;
  • Управлять установленным ПО через специальные интерфейсы;
  • Встраивать исполняемые компоненты в сторонние программы;
  • Создавать сценарии для автоматизации задач администрирования;
  • Работать с файловой системой, реестром Windows, хранилищем сертификатов и т.д.

Оболочка и среда разработки

Существует Windows PowerShell в двух ипостасях: помимо эмулятора консоли с командной оболочкой есть интегрированная среда сценариев (Integrated Scripting Environment — ISE). Чтобы получить доступ к интерфейсу командной строки достаточно выбрать соответствующий ярлык в меню Windows или запустить powershell.exe из меню «Выполнить». На экране появится синее окошко, заметно отличающееся по возможностям от допотопного cmd.exe. Там есть автодополнение и другие фишки, привычные пользователям командных оболочек для Unix-систем.


Для работы с оболочкой нужно запомнить некоторые сочетания клавиш:

  • Стрелки вверх и вниз прокручивают историю для повтора ранее набранных команд;
  • Стрелка вправо в конце строки перенабирает предыдущую команду посимвольно;
  • Ctrl+Home удаляет набранный текст от позиции курсора до начала строки;
  • Ctrl+End удаляет текст от курсора до конца строки.


Windows PowerShell ISE является полноценной средой разработки с поддерживающим вкладки и подсветку синтаксиса редактором кода, конструктором команд, встроенным отладчиком и другими программистскими радостями. Если в редакторе среды разработки после имени команды написать знак дефис, вы получите в выпадающем списке все доступные параметры с указанием типа. Запустить PowerShell ISE можно либо через ярлык из системного меню, либо с помощью исполняемого файла powershell_ise.exe.


Командлеты

Помимо Get в командлетах для обозначения действий используются и другие глаголы (и не только глаголы, строго говоря). В списке ниже мы приведем несколько примеров:

Add — добавить;
Clear — очистить;
Enable — включить;
Disable — выключить;
New — создать;
Remove — удалить;
Set — задать;
Start — запустить;
Stop — остановить;
Export — экспортировать;
Import — импортировать.

Есть системные, пользовательские и опциональные командлеты: в результате выполнения все они возвращают объект или массив объектов. К регистру они не чувствительны, т.е. с точки зрения интерпретатора команд нет разницы между Get-Help и get-help. Для разделения используется символ ‘;’, но ставить его обязательно только если в одной строке выполняется несколько командлетов.

Командлеты Windows PowerShell группируются в модули (NetTCPIP, Hyper-V и т.д.), а для поиска по объекту и действию существует командлет Get-Command. Показать справку по нему можно так:


По умолчанию команда отображает краткую справку, но в командлеты при необходимости передаются параметры (аргументы). С их помощью можно, например, получить детальную (параметр -Detailed) или полную (параметр -Full) справку, а также вывести на экран примеры (параметр -Examples):


Справка в Windows PowerShell обновляется командлетом Update-Help. Если строка команд получается слишком длинной, аргументы командлета можно перенести на следующую, написав служебный символ ‘`’ и нажав Enter — просто закончить писать команду на одной строке и продолжить на другой не получится.

Ниже приведем несколько примеров распространенных командлетов:

Get-Process — показать запущенные в системе процессы;
Get-Service — показать службы и их статус;
Get-Content — вывести содержимое файла.

Для часто используемых командлетов и внешних утилит в Windows PowerShell есть короткие синонимы — алиасы (от англ. Alias). Например, dir — алиас Get-ChildItem. Есть в списке синонимов и аналоги команд из Unix-систем (ls, ps и т.д.), а командлет Get-Help вызывается командой help. Полный список синонимов можно посмотреть с помощью командлета Get-Alias:


Сценарии, функции, модули и язык PowerShell

Скрипты Windows PowerShell хранятся в виде обычных текстовых файлов с расширением .ps1. Запустить их двойным кликом нельзя: нужно правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Запустить в PowerShell». Из консоли придется либо указать полный путь к скрипту, либо перейти в соответствующий каталог и написать имя файла. Запуск сценариев также ограничен системной политикой, а для проверки текущих настроек можно использовать командлет Get-ExecutionPolicy, который выдаст одно из следующих значений:

Restricted — запуск сценариев запрещен (по умолчанию);
AllSigned — разрешен только запуск подписанных доверенным разработчиком сценариев;
RemoteSigned — разрешен запуск подписанных и собственных сценариев;
Unrestricted — разрешен запуск любых сценариев.

У администратора есть два варианта действий. Наиболее безопасный предполагает подписание скриптов, но это довольно серьезное колдунство — мы будем разбираться с ним в следующих статьях. Сейчас пойдем по пути наименьшего сопротивления и поменяем политику:


PowerShell для этого придется запустить от имени администратора, хотя с помощью специального параметра можно изменить политику и для текущего пользователя.

Пишутся скрипты на объектно-ориентированном языке программирования, команды которого именуются по тому же принципу, что и рассмотренные ранее командлеты: «Действие-Объект» («Глагол-Существительное»). Основное его предназначение — автоматизация задач администрирования, но это полноценный интерпретируемый язык, в котором есть все необходимые конструкции: условный переход, циклы, переменные, массивы, объекты, обработка ошибок и т.д. Для написания сценариев годится любой текстовый редактор, но удобнее всего запустить Windows PowerShell ISE.

В скрипт можно передавать параметры, делать их обязательными, а также задавать значения по умолчанию. Кроме того Windows PowerShell позволяет создать функции и вызывать их точно так же, как и командлеты: для этого используется конструкция Function и фигурные скобки. Сценарий с функциями называется модулем и имеет расширение .psm1. Модули должны храниться в каталогах, определенных в переменных окружения PowerShell. Посмотреть их можно при помощи следующей команды:

Конвейеры

В последнем примере мы применили знакомую пользователям оболочек для Unix-систем конструкцию. В Windows PowerShell вертикальная черта также позволяет передать выход одной команды на вход другой, но в реализации конвейера есть и существенная разница: речь здесь идет уже не о наборе символов или каком-то тексте. Встроенные командлеты или пользовательские функции возвращают объекты или массивы объектов, а также могут получать их на входе. Как в Bourne shell и его многочисленных последователях, в PowerShell с помощью конвейера упрощается выполнение сложных задач.

Простейший пример конвейера выглядит так:


Сначала выполняется командлет Get-Service, а потом все полученные им службы передаются на сортировку по свойству Status командлету Sort-Object. В какой именно аргумент передается результат работы предыдущего участка конвейера, зависит от его типа — обычно это InputObject. Подробнее этот вопрос будет рассматриваться в посвященной языку программирования PowerShell статье.

При желании цепочку можно продолжить и передать результат работы Sort-Object еще одному командлету (выполняться они будут слева направо). Кстати, пользователям Windows доступна и привычная всем юниксоидам конструкция для постраничного вывода:

Запуск задач в фоновом режиме

Довольно часто бывает нужно запустить некую команду в фоне, чтобы не дожидаться результата ее выполнения в сессии оболочки. В Windows PowerShell есть несколько командлетов на такой случай:

Start-Job — запуск фоновой задачи;
Stop-Job — остановка фоновой задачи;
Get-Job — просмотр списка фоновых задач;
Receive-Job — просмотр результата выполнения фоновой задачи;
Remove-Job — удаление фоновой задачи;
Wait-Job — перевод фоновой задачи обратно в консоль.

Для запуска фоновой задачи мы используем командлет Start-Job и в фигурных скобках указываем команду или набор команд:


Фоновыми задачами в Windows PowerShell можно манипулировать, зная их имена. Для начала научимся их отображать:


Теперь покажем результат работы задания Job1:


Всё довольно просто.

Удаленное выполнение команд

Windows PowerShell позволяет выполнять команды и сценарии не только на локальном, но и на удаленном компьютере и даже на целой группе машин. Для этого существует несколько способов:

  • У многих командлетов есть параметр -ComputerName , но таким способом не получится, например, создать конвейер;
  • Командлет Enter-PSSession позволяет создать на удаленной машине интерактивный сеанс;
  • С помощью командлета Invoke-Command можно выполнять команды или сценарии на одном или нескольких удаленных компьютерах.

Версии PowerShell

С момента первого релиза в 2006 году PowerShell серьезно изменился. Инструмент доступен для множества систем, работающих на разных аппаратных платформах (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux и OS X. Последний релиз 6.2 выпущен 10 января 2018 года. Написанные для более ранних версий скрипты с высокой вероятностью будут работать в более поздних, а вот с обратным переносом могут возникнуть проблемы, поскольку за годы развития в PowerShell появилось большое количество новых командлетов. Узнать версию установленной на компьютере командной оболочки можно с помощью свойства PSVersion встроенной переменной $PSVersionTable:


Также можно воспользоваться командлетом:


То же самое делается и с помощью командлета Get-Host. На самом деле вариантов множество, но для их применения нужно изучить язык программирования PowerShell, чем мы и займемся в следующей статье.

Итоги

Читайте также: