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
Интегрированная среда сценариев 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
Руководство по Windows PowerShell для начинающих
Авторизуйтесь
Руководство по Windows PowerShell для начинающих
В этой статье про PowerShell для начинающих мы посмотрим, как писать скрипты, которые помогают оптимизировать управление Windows-окружением.
PowerShell — это объектно-ориентированный программный движок и скриптовый язык с интерфейсом командной строки, предоставляющий широкие возможности для конфигурирования операционных систем семейства MS Windows. Он предлагает как чисто консольный интерфейс, так и полноценную среду разработки PowerShell ISE (Integrated Scripting Environment, встроенное скриптовое окружение) для скриптов.
Для запуска интерфейса командной строки введите powershell в меню «Выполнить» (WinKey + R). PowerShell ISE запускается с помощью команды «PowerShell ISE» в том же меню. ISE более предпочтительно, так как предоставляет более широкие возможности разработчику благодаря подсветке синтаксиса, функции автозаполнения кода и другим особенностям, присущим многим «большим» IDE.
Среда разработки Windows PowerShell ISE
Написание и запуск скриптов
Для начала работы необходимо изменить настройку политики запуска на RemoteSigned, используя команду Set-ExecutionPolicy :
После выполнения команды можно будет запускать свои скрипты
Командлеты
Командлеты — это команды с предопределённой функцией, подобные условным операторам в языках программирования. У них есть несколько ключевых особенностей:
Каждый командлет содержит в себе глагол и существительное, разделяемые дефисом. Например:
При необходимости список всех доступных командлетов можно вывести с помощью Get-Help-Category. Запомните эту команду — она крайне важна для тех, кто изучает PowerShell с нуля, так как помогает быстрее начать ориентироваться в его возможностях.
Результат выполнения команды Get-Help-Category
Также можно создавать свои командлеты, но эта тема выходит за рамки нашего руководства по PowerShell для начинающих.
Параметры
Для чего нужен Windows PowerShell – как его использовать
Чтобы понять, что такое Windows PowerShell, мы должны сначала объяснить, что такое оболочка. Оболочка или интерпретатор команд – это программа, которая позволяет взаимодействовать с операционной системой через терминал и в командной строке. Используя оболочку можно давать команды системе и открывать программы.
Windows PowerShell – это усовершенствованная оболочка, интегрированная во все операционные системы Microsoft, начиная с Windows 7. Она включает в себя интерактивные подсказки и среду сценариев, которую можно использовать по отдельности или в комбинации.
Что такое Windows PowerShell
Как следует из названия, Windows PowerShell – это оболочка командной строки. Она была разработана специально для использования системными администраторами и может использоваться для выполнения всех команд cmd.exe.
PowerShell позволяет вам взаимодействовать с операционной системой, используя преимущества инструментов, доступных из командной строки, и используя возможности программирования сценариев для автоматизации рутинной работы.
Давайте подробно рассмотрим, какие функции и преимущества предлагает эта оболочка от Microsoft:
Как запустить Windows PowerShell
После объяснения, что такое Windows PowerShell, давайте посмотрим, как его запустить.
Более современный способ – доступный в Windows 10 – щелкнуть правой кнопкой мыши по меню «Пуск» и выбрать соответствующий пункт из меню «Опытного пользователя»
Как взаимодействовать с Windows PowerShell
Все команды, доступные в командной строке Windows, доступны и могут также использоваться в PowerShell.
Мы можем использовать символы переправления > для отправки вывода в файл или >> для добавления в файл. PowerShell использует псевдонимы для связи команд cmd.exe со своими командлетами. Например, команда cd является псевдонимом для командлета set-location, точно так же, как dir является псевдонимом для командлета get-children.
PowerShell можно использовать для запуска исполняемых команд или для работы непосредственно с реестром Windows без запуска его редактора.
Одна из сильных сторон этой оболочки – её командлеты. Каждый командлет представлен «глаголом», за которым следует тире и существительное.
Чтобы просмотреть полный список всех доступных командлетов, введите get-command. Чтобы получить информацию о конкретном командлете, введите get-help и имя командлета.
Что такое Windows PowerShell ISE
Windows PowerShell ISE (интегрированная среда сценариев) – это приложение, появившееся в PowerShell 2.0. Она позволяет запускать команды и писать, тестировать и отлаживать сценарии в едином графическом интерфейсе пользователя на базе Windows.
Этот ISE включает командную панель, одну для сценариев и одну для вывода. Панель вывода отображает результаты команд, запущенных в двух других панелях. Кроме того, графическое окружение можно изменить, выбрав расположение блоков.
PowerShell ISE поддерживает многострочное редактирование, окрашивание синтаксиса, завершение с помощью клавиши TAB и выборочное выполнение и использует собственный профиль, отличный от того, который используется для настройки 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 :
Результат будет примерно таким:
Результат будет примерно таким: