Windos powershell что это
Windows PowerShell — что это за программа
В последних версиях системы вместо классической командной строки можно обнаружить оболочку Windows PowerShell. Это программа является усовершенствованной командной строкой. Принцип работы в обновлённой оболочке совсем не изменился. Непосредственно путём выполнения команд происходит внесение изменений в систему.
Эта статья расскажет, что это за программа Windows PowerShell. Если же оболочка отсутствует в списке программ, тогда попробуйте включить её в программах и компонентах Windows 10. Несмотря на то что PowerShell создан в первую очередь для разработчиков, обычные пользователи успешно его используют в собственных целях.
Что такое Windows PowerShell в Windows 10
Приложение Windows PowerShell — это современная кроссплатформенная оболочка добавлена в систему с целью заменить классическую командную строку. Она является полезным инструментом не только для системных администраторов и разработчиков, но и подходит для других пользователей.
Windows PowerShell представляет собой современную, усовершенствованную командную строку, для настройки и управления компьютером. Она позволяет установить контроль над службами, аккаунтами, настройками, процессами и много других.
Язык скриптов воспринимает команды из классической командной строки Windows 10. В свою очередь, имеет богатый собственный язык, который состоит из определённых дополнительных команд (cmdlets). Убедитесь, что установлен компонент NET Framework 3.5 для Windows 10.
Как запустить PowerShell в Windows 10
Достаточно нажать сочетание Win+X и в контекстном меню Пуск выбрать Windows PowerShell (администратор). В последних версиях операционной системы командная строка была заменена на Windows PowerShell. Можно в параметрах заменить командную строку оболочкой Windows PowerShell в меню, которое появляется при щелчке правой кнопкой мыши по кнопке Пуск.
В поисковой строке введите Windows PowerShell и в результатах выберите Запуск от имени администратора. Для внесения изменений в систему рекомендуется запускать вышеуказанную оболочку только от имени администратора. Непосредственно с командной строки можно вызвать оболочку Windows PowerShell, выполнив команду PowerShell.
А также можно запустить Windows PowerShell в определённой папке. Достаточно зажать клавишу Shift и в контекстном меню выбрать Открыть окно PowerShell здесь. В предыдущих версиях операционной системы вместо PowerShell был доступный пункт командной строки. Для перехода в командную строку в окне Windows PowerShell выполняем команду Cmd.
Основные команды для PowerShell
В программе поддерживается огромное количество команд, применяемых к различным компонентам операционной системы Windows 10. Хорошо что есть возможность получить справку о любой команде непосредственно в окне программы 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 и с чем его едят? Часть 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
Интегрированная среда скриптов (ISE) Windows PowerShell позволяет создавать, выполнять и отлаживать команды и скрипты. Интегрированная среда сценариев Windows PowerShell состоит из строки меню, вкладок Windows PowerShell, панели инструментов, вкладок сценариев, области сценариев, области консоли, строки состояния, ползунка для размера текста и контекстной справки.
Строка меню
Строка меню содержит меню Файл, Правка, Вид, Сервис, Отладка, Надстройки и Справка. Кнопки в меню позволяют выполнять задачи, связанные с написанием и запуском сценариев и выполнением команд в ISE Windows PowerShell. Кроме того, дополнительные средства могут быть помещены в строку меню при помощи запуска скриптов, которые используют Иерархию объектной модели интегрированной среды сценариев.
Вкладки Windows PowerShell
Вкладка Windows PowerShell — это среда, в которой выполняется сценарий Windows PowerShell. Вы можете открыть в ISE Windows PowerShell новые вкладки Windows PowerShell, чтобы создать отдельные среды на локальном или удаленных компьютерах. Число одновременно открытых вкладок PowerShell не может превышать восьми.
Панель инструментов
На панели инструментов расположены следующие кнопки.
Кнопка | Компонент |
---|---|
Создать | Открывает новый сценарий. |
Открыть | Открывает существующий сценарий или файл. |
Сохранить | Сохраняет сценарий или файл. |
Вырезать | Вырезает выбранный текст в буфер обмена. |
Copy. | Копирование выбранного текста в буфер обмена. |
Вставить | Вставляет содержимое буфера обмена в положение курсора. |
Очистить область консоли | Удаляет все содержимое в области консоли. |
Отменить | Отменяет последнее действие. |
Повторить | Выполняет последнее отмененное действие. |
Запустить сценарий | Запускает сценарий. |
Запуск выбранного | Запускает выбранный фрагмент сценария. |
Остановить операцию | Останавливает выполняемый сценарий. |
Создать вкладку удаленного использования PowerShell | Создает вкладку PowerShell, запускающую сеанс на удаленном компьютере. Отображается диалоговое окно, предлагающее ввести сведения для установки удаленного подключения. |
Запустить PowerShell.exe | Открывает консоль Windows PowerShell. |
Показать область сценариев сверху | Перемещает область сценариев в верхнюю часть экрана. |
Показать область сценариев справа | Перемещает область сценариев в правую часть экрана. |
Развернуть область сценариев | Развертывает область сценариев. |
Показать командное окно | Отображает область команд для установленных модулей в виде отдельного окна. |
Показать надстройку команд | Отображает область команд для установленных модулей в виде надстройки сбоку. |
Вкладка сценария
Отображает имя редактируемого сценария. Можно щелкнуть вкладку сценария, чтобы выбрать сценарий для изменения.
При наведении указателя мыши на вкладку сценария в подсказке отображается полный путь к файлу сценария.
Область сценариев
Позволяет создавать и запускать сценарии. В области сценариев можно открыть, изменить и запустить существующие сценарии. Дополнительные сведения: Написание и запуск сценариев в интегрированной среде сценариев 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.