Windows powershell что это

Что такое Windows PowerShell и с чем его едят? Часть 1: основные возможности

Исторически утилиты командной строки в Unix-системах развиты лучше чем в Windows, однако с появлением нового решения ситуация изменилась.

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

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

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

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

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

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

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. Показать справку по нему можно так:

Справка в 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

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

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

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

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

Конвейеры

В последнем примере мы применили знакомую пользователям оболочек для 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 позволяет выполнять команды и сценарии не только на локальном, но и на удаленном компьютере и даже на целой группе машин. Для этого существует несколько способов:

Версии PowerShell

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

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

Итоги

Источник

Windows PowerShell Справочник программистов’s

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

мощная среда выполнения Windows PowerShell (механизм выполнения) с собственным анализатором и механизмом для автоматической привязки параметров команды.

Служебные программы для форматирования и отображения результатов команд с помощью интерпретатора командной строки (CLI).

поддержка высокого уровня функциональности (с помощью поставщиков Windows PowerShell), которые упрощают доступ к сохраненным данным.

в следующем разделе рассматриваются ключевые Windows PowerShell концепции и термины. Ознакомьтесь с этими понятиями и терминами перед началом разработки.

Сведения о Windows PowerShell

Windows PowerShell определяет несколько типов команд, которые можно использовать в разработке. Эти команды включают в себя функции, фильтры, скрипты, псевдонимы и исполняемые объекты (приложения). Основной тип команды, описанный в этом разделе, — это простая небольшая команда, называемая «командлетом». Windows PowerShell представляя набор командлетов и полностью поддерживает настройку командлетов в соответствии с вашей средой. среда выполнения Windows PowerShell обрабатывает все типы команд точно так же, как командлеты, используя конвейеры.

в дополнение к командам Windows PowerShell поддерживает различные настраиваемые поставщики Windows PowerShell, которые делают доступными определенные наборы командлетов. оболочка работает в ведущем приложении, предоставленном Windows PowerShell (Windows PowerShell.exe), но оно также доступно из пользовательского ведущего приложения, которое можно разрабатывать для удовлетворения конкретных требований. дополнительные сведения см. в разделе как работает Windows PowerShell.

Командлеты Windows PowerShell

командлет — это упрощенная команда, используемая в среде Windows PowerShell. среда выполнения Windows PowerShell вызывает эти командлеты в контексте скриптов автоматизации, предоставленных в командной строке, а среда выполнения Windows PowerShell также вызывает их программно через api-интерфейсы Windows PowerShell.

Windows PowerShell Поставщик

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

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

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

Ведущее приложение

Windows PowerShell включает ведущее приложение по умолчанию powershell.exe, которое является консольным приложением, взаимодействующим с пользователем и размещает среду выполнения Windows PowerShell с помощью окна консоли.

только редко приходится писать собственное ведущее приложение для Windows PowerShell, хотя настройка поддерживается. Один из случаев, когда вам может потребоваться ваше собственное приложение, — это потребность в ПОЛЬЗОВАТЕЛЬСКОМ интерфейсе, который более широк, чем интерфейс, предоставленный ведущим приложением по умолчанию. Вам также может потребоваться пользовательское приложение при создании базового графического интерфейса пользователя в командной строке. дополнительные сведения см. в разделе создание Windows PowerShell ведущего приложения.

Windows PowerShell Этапе

среда выполнения Windows PowerShell — это подсистема выполнения, реализующая обработку команд. он включает классы, предоставляющие интерфейс между ведущим приложением и Windows PowerShell командами и поставщиками. среда выполнения Windows PowerShell реализуется как объект пространства выполнения для текущего сеанса Windows PowerShell, который является рабочей средой, в которой выполняется оболочка и команды. сведения о работе см. в разделе Windows PowerShell works.

Windows PowerShell Языке

язык Windows PowerShell предоставляет функции и механизмы создания скриптов для вызова команд. полные сведения о сценариях см. в справочнике по языку Windows PowerShell, поставляемом с Windows PowerShell.

Расширенная система типов (ETS)

Просмотр подмножества элементов конкретных объектов. Windows PowerShell предоставляет «адаптированное» представление нескольких конкретных типов объектов.

Добавление элементов в существующие объекты.

Доступ к сериализованным объектам.

Написание настраиваемых объектов.

дополнительные сведения о ETS и о том, как Windows PowerShell использует объекты, см. в разделе основные понятия Windows PowerShell Object.

Программирование для Windows PowerShell

Справочник программиста

справочные сведения о разработке для Windows PowerShell см. в разделе пакет SDK для Windows PowerShell.

начало работы с помощью Windows PowerShell

Источник

Общие сведения о PowerShell

PowerShell — это оболочка командной строки и язык сценариев в одной системе. Она начала свое развитие в Windows. Эта оболочка предназначалась для автоматизации задач администрирования, но на данный момент стала межплатформенной и может использоваться для выполнения различных задач.

Более подробно конвейеры будут рассматриваться в других руководствах этой серии.

И даже после этого может потребоваться немного обработать результаты.

Для чего предназначена оболочка PowerShell?

С тех пор, как PowerShell применялась только в Windows, область ее действия значительно расширилась. Она по-прежнему используется для автоматизации задач Windows, но сейчас с ней можно работать для выполнения различных задач, некоторые из которых приведены ниже.

Существует гораздо больше областей использования, но вышеприведенный список дает понять, что PowerShell удалось добиться значительного прогресса.

Кто использует PowerShell?

PowerShell является очень мощным средством и может быть полезно огромному числу пользователей с различными ролями. Традиционно PowerShell использовали сотрудники с ролью системного администратора, но теперь с этим средством активно работают люди, называющие себя инженерами DevOps, Cloud Ops и даже разработчиками.

Командлеты PowerShell

В состав PowerShell входят сотни предустановленных команд. Команды PowerShell называются командлетами. Слово cmdlet произносится как «командлет».

Использование командлетов для изучения PowerShell

Первое знакомство с PowerShell может показаться пугающим, так как кажется, что предстоит очень многому научиться. Однако изучение PowerShell происходит постепенно и по мере необходимости.

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

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

Команда

Глагол является важным понятием в PowerShell. Это стандарт именования, которому следует большинство командлетов. Этого стандарта должны придерживаться и вы в процессе написания собственных команд. Суть в том, что глагол означает действие, которое будет выполняться, например чтение или изменение данных. В PowerShell имеется стандартизированный список глаголов. Чтобы получить полный список всех возможных команд, выполните командлет Get-Verb :

В качестве выходных данных будет выведен длинный список глаголов. Следует отметить, что в ответе приводится дополнительный контекст о действии, выполняемом глаголом. Вот как выглядит первая строка выходных данных:

Поиск команд с помощью командлета Get-Command

Командлет Get-Command возвращает список всех доступных команд, установленных в системе. Этот список довольно большой. Чтобы упростить поиск команд, рекомендуется ограничить объем возвращаемой информации. Можно отфильтровать ответ с помощью параметров или вспомогательных командлетов.

Фильтрация по имени

Выходные данные Get-Command можно отфильтровать с помощью различных параметров. В этом случае фильтрация работает как запрос определенного свойства в команде. Суть в том, что необходимо указать свойство, которое будет условием фильтрации, после чего следует задать строку, с которой нужно выполнить сопоставление. В итоге вы получите сравнение, которое выглядит следующим образом:

Фильтрация по существительным и глаголам

При фильтрации только по глаголу или только по существительному может быть выведен слишком большой результирующий набор. Чтобы сузить область поиска, рекомендуется объединить два параметра, как показано в примере ниже:

Результат выглядит следующим образом:

Таким образом, вы немного сократили объем выходных данных, так как знали глагол и то, что он вызывает.

Использование вспомогательных командлетов для фильтрации результатов

Выполнять фильтрацию можно не только с помощью параметров, но и с помощью команд. Ниже приведены некоторые команды, которые могут работать в качестве фильтров:

Результатом выполнения приведенной выше команды являются три первые верхние команды. Результат имеет следующий вид:

Стоит рассмотреть эту команду более подробно, так как с ее помощью можно выполнять гораздо больше задач (см. статью Select-Object).

Изучение объектов с помощью Get-Member

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

Поиск по типу

Другой способ поиска нужной команды заключается в поиске команд, работающих с одним и тем же типом. При выполнении Get-Member вы получили возвращаемый тип в виде первой строки ответа, как показано ниже:

Теперь вы можете использовать этот тип и искать команды следующим образом:

Результатом выполнения приведенной выше команды является список команд, которые работают исключительно с типом Process :

Как видите, зная тип команды, можно значительно сузить область поиска интересующих команд.

Упражнение. Вызов первой команды

В этом упражнении вы узнаете, как выполнить первую команду.

Запустите консоль PowerShell, введя pwsh :

Результат будет выглядеть примерно так:

Поздравляем! Вы успешно выполнили первую команду и смогли получить сведения об установленной в системе версии PowerShell.

Упражнение. Поиск связанных команд

Цель этого упражнения — получить дополнительные сведения о команде. В итоге вы также узнаете, с каким типом работает команда, и какие другие аналогичные команды работают с тем же типом.

Запустите оболочку PowerShell.

Выполните команду Get-Process :

Результат будет примерно таким:

Результат будет примерно таким:

Итоги

Источник

Интегрированная среда сценариев Windows PowerShell

Интегрированная среда сценариев Windows PowerShell (ISE) является ведущим приложением для Windows PowerShell. В ISE можно запускать команды, записывать и тестировать скрипты, а также выполнять их отладку в едином графическом пользовательском интерфейсе на базе Windows. ISE поддерживает редактирование нескольких строк, заполнение нажатием клавиши TAB, раскраску синтаксических конструкций, выборочное выполнение, контекстную справку и поддержку письма справа налево. Элементы меню и сочетания клавиш подходят для выполнения большинства тех же задач, которые выполняются в консоли Windows PowerShell. Например, при отладке скрипта в ISE вы можете щелкнуть строку кода на панели редактирования правой кнопкой мыши, чтобы задать точку останова.

Поддержка

ISE была впервые представлена в Windows PowerShell версии 2 и переработана в PowerShell версии 3. ISE поддерживается во всех поддерживаемых версиях Windows PowerShell до версии 5.1 включительно.

Функции для ISE PowerShell больше не разрабатываются. Как компонент доставки Windows эта среда по-прежнему официально поддерживается для внесения наиболее важных исправлений, связанных с безопасностью и обслуживанием. Пока что мы не планируем удалять ISE из Windows.

ISE не поддерживается в PowerShell версии 6 и более поздних версиях. Пользователям, которые ищут замену ISE, следует использовать Visual Studio Code с расширением PowerShell.

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

Основные возможности в Windows PowerShell ISE являются такими:

Интегрированная среда сценариев Windows PowerShell позволяет настроить некоторые аспекты его представления. Она также имеет свой собственный скрипт профиля Windows PowerShell.

Запуск интегрированной среды сценариев Windows PowerShell

Нажмите кнопку Пуск, выберите раздел Windows PowerShell, а затем щелкните Интегрированная среда скриптов Windows PowerShell. Кроме того, можно ввести powershell_ise.exe в любой командной оболочке или поле «Выполнить».

Получение справки в интегрированной среде сценариев Windows PowerShell

Источник

about_PowerShell_exe

Краткое описание

Объясняет, как использовать powershell.exe интерфейс командной строки. Отображает параметры командной строки и описание синтаксиса.

Подробное описание

SYNTAX

Параметры

-PSConsoleFile

Загружает указанный файл консоли PowerShell. Введите путь и имя файла консоли. Для создания файла консоли используйте командлет Export-Console в PowerShell.

-Version

Запускает заданную версию PowerShell. Допустимые значения: 2.0 и 3.0. Указанная версия должна быть установлена в системе. если на компьютере установлено Windows PowerShell 3,0, то используется версия по умолчанию 3,0. В противном случае версия по умолчанию — «2,0». Дополнительные сведения см. в разделе Установка PowerShell.

-NoLogo

Скрывает баннер авторских прав при запуске программы.

-NoExit

Не завершает работу после выполнения команд запуска.

Запускает PowerShell с использованием многопотокового подразделения. В Windows PowerShell 2.0 по умолчанию используется многопотоковое подразделение (MTA). В Windows PowerShell 3.0 по умолчанию используется однопотоковое подразделение (STA).

Запускает PowerShell с использованием многопотокового подразделения. Этот параметр впервые появился в PowerShell 3.0. В PowerShell 2.0 по умолчанию используется многопотоковое подразделение (MTA). В PowerShell 3.0 по умолчанию используется однопотоковое подразделение (STA).

-NoProfile

Не загружает профиль PowerShell.

-NonInteractive

Не предоставляет пользователю интерактивную командную строку.

-InputFormat

Описывает формат данных, отправляемых в PowerShell. Допустимые значения: «Text» (текстовые строки) или «XML» (сериализованный формат CLIXML).

-OutputFormat

Определяет формат выходных данных PowerShell. Допустимые значения: «Text» (текстовые строки) или «XML» (сериализованный формат CLIXML).

-WindowStyle

Задает стиль окна для сеанса. Допустимые значения: Normal, Minimized, Maximized и Hidden.

-EncodedCommand

Принимает строковую версию команды в кодировке Base 64. Используйте этот параметр для отправки в PowerShell команд, требующих сложных кавычек или фигурных скобок. Строка должна быть отформатирована с использованием кодировки UTF-16LE.

-ConfigurationName

Указывает конечную точку конфигурации, в которой выполняется PowerShell. Это может быть любая конечная точка, зарегистрированная на локальном компьютере, включая конечные точки удаленного взаимодействия PowerShell по умолчанию или пользовательскую конечную точку с конкретными возможностями роли пользователя.

Аналогично, если вы хотите выполнить ту же команду из пакетного скрипта, используйте %

В редких случаях может потребоваться указать логическое значение для параметра. Невозможно передать явное логическое значение для параметра Switch при выполнении сценария таким образом. Это ограничение было удалено в PowerShell 6 ( pwsh.exe ).

-ExecutionPolicy

-Command

Выполняет указанные команды (и любые параметры), как если бы они были введены в командной строке PowerShell, а затем завершает работу, если NoExit не указан параметр.

Если значение Command является строкой, команда должна быть последним параметром для pwsh, так как все приведенные ниже аргументы будут интерпретироваться как часть выполняемой команды.

При вызове из существующего сеанса PowerShell результаты возвращаются в родительскую оболочку как десериализованные объекты XML, а не в активные объекты. Для других оболочек результаты возвращаются в виде строк.

В этом примере выводятся следующие данные:

Отображает справку для PowerShell.exe. При вводе команды PowerShell.exe в сеансе PowerShell перед параметрами команды используется дефис (-), а не косая черта (/). В cmd.exe можно использовать дефис или прямую косую черту.

ПРИМЕЧАНИЯ

Устранение неполадок Примечание. в PowerShell 2,0 запуск некоторых программ из консоли PowerShell завершается сбоем с LastExitCode 0xc0000142.

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • windows powershell что это такое
  • Windows powershell что это как удалить
  • windows powershell что это за программа и нужна ли она
  • Windows powershell что это за программа и можно ли ее удалить
  • Windows powershell что это за программа и как ее удалить

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии