Виндовс повер шелл что это за программа

Что такое 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 для начинающих

В этой статье про 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.

Источник

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

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

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

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

Оглавление:

Писать код можно в любом текстовом редакторе или с использованием интегрированной среды разработки — проще всего взять Windows PowerShell ISE из комплекта поставки серверных операционных систем Microsoft. Нужно это только для достаточно сложных скриптов: короткие наборы команд проще выполнять в интерактивном режиме.

Комментарии

Использование комментариев считается частью хорошего стиля программирования наряду с правильными отступами и пробелами:

Переменные и их типы

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

Для инициализации переменной (присвоения ей значения) применяется оператор присваивания (символ =):

Объявить переменную можно с указанием ее типа в квадратных скобках (оператор приведения типов) перед именем или значением:

PowerShell поддерживает неявное преобразование типов, кроме того тип переменной может меняться на ходу (например, при помощи оператора присваивания), если он не указан принудительно — в этом случае интерпретатор выдаст ошибку. Определить тип переменной из предыдущего примера можно при помощи вызова метода GetType():

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

Существует некоторое количество командлетов для управления переменными. Их список в удобной форме выводится с помощью команды:

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

Для просмотра объявленных переменных и их значений можно использовать специальный командлет:

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

Системные переменные

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

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

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

Области видимости

Переменные окружения (среды)

Из PowerShell доступен еще один псевдонакопитель Env:, с помощью которого можно обратиться к переменным среды. При запуске оболочки они копируются из родительского процесса (т.е. из инициировавшей текущий сеанс программы) и обычно их первоначальные значения совпадают со значениями в панели управления. Для просмотра переменных окружения используется командлет Get-ChildItem или его псевдонимы (алиасы): ls и dir.

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

Эти переменные представляют собой последовательности байтов (или символов, если угодно), интерпретация которых зависит только от использующей их программы. Командлеты *-Variable с переменными среды не работают. Чтобы обратиться к ним, придется использовать префикс диска:

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

Арифметические операторы и операторы сравнения

Операторы присваивания

Логические операторы

Условный переход

Операторы ветвления в PowerShell стандартные: IF(IF…ELSE, IF…ELSEIF…ELSE) и SWITCH. Рассмотрим их использование на примерах:

Циклы

В языке PowerShell есть несколько разновидностей циклов: WHILE, DO WHILE, DO UNTIL, FOR и FOREACH.

Цикл с предусловием работает, если/пока оно выполняется:

Циклы с постусловием отработают хотя бы один раз, потому что проверка условия производится после выполнения итерации. При этом DO WHILE работает, пока условие истинно, а DO UNTIL — пока оно ложно:

Количество итераций цикла FOR известно заранее:

В цикле FOREACH осуществляет перебор элементов массива или коллекции (хэш-таблицы):

Массивы

В переменных PowerShell хранятся не только единичные объекты (число, строка и т.д.), но и множественные. Самая простая разновидность таких переменных — массивы. Массив может состоять из нескольких элементов, из одного элемента или быть пустым, т.е. не содержать элементов. Для его объявления используется оператор @(), который понадобится нам в следующей статье — он очень важен для добавления в массив других массивов (создания многомерных массивов), передачи массивов в функции в качестве аргумента и тому подобных задач:

В большинстве случаев оператор @() можно опустить:

В этом случае массив из одного элемента инициализируется следующим образом

Для обращения к элементам массива используется начинающийся с нуля целочисленный индекс и оператор индекса (квадратные скобки):

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

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

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

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

В PowerShell массивы могут содержать элементы разных типов или быть строго типизированными:

Пример создания строго типизированного массива:

Хэш-таблицы

Еще один базовый тип переменных в языке PowerShell — хэш-таблицы, которые также называют ассоциативными массивами. Hashtable похожи на JSON object и строятся по принципу ключ-значение. В отличие от обычных массивов, доступ к их элементам осуществляется по именованным ключам, которые являются свойствами объекта (также можно использовать оператор индекса — квадратные скобки).

Пустая хэш-таблица объявляется с помощью служебного символа @ и операторных скобок:

При объявлении можно сразу создать ключи и присвоить им значения:

Для добавления элемента в хэш-таблицу нужно присвоить ей еще несуществующий ключ или воспользоваться методом Add(). Если присваивание делается с существующим ключом, его значение изменится. Для удаления элемента из хэш-таблицы используется метод Remove().

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

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

Функции

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

Для примера создадим функцию возведения числа в квадрат:

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

Из-за способа передачи аргументов саму функцию иногда приходится заключать в скобки:

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

При описании функции можно присвоить аргументам значения по умолчанию:

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

Обработка ошибок

В PowerShell существует механизм Try…Catch…Finally, позволяющий обрабатывать исключительные ситуации. В блок Try помещается код, в котором может возникнуть ошибка, а в блок Catch — ее обработчик. Если ошибки не было, он не выполняется. Блок Finally выполняется после блока Try вне зависимости от возникновения ошибки, а блоков Catch может быть несколько для исключений различных типов. Само исключение записывается в не требующую объявления переменную по умолчанию ($_) и может быть легко извлечено. В примере ниже мы реализуем защиту от ввода некорректного значения:

Виндовс повер шелл что это за программа. Смотреть фото Виндовс повер шелл что это за программа. Смотреть картинку Виндовс повер шелл что это за программа. Картинка про Виндовс повер шелл что это за программа. Фото Виндовс повер шелл что это за программа

На этом рассмотрение основ программирования на языке 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 :

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

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

Итоги

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *