Для многих пользователей, этот неотъемлемый элемент ОС Windows, представляется настоящей загадкой. Открывая его, они видят список из непонятных символов, разобраться в котором для непосвященных не представляется возможным. Но не стоит его недооценивать, это программа, несущая важную управленческую функцию, способна упростить работу с ПК, в чем бы она ни выражалась.
Утилита полностью автоматизирована, для управления рабочими процессами понадобится минимальное вмешательство человеческого фактора. Все что для нужно — задавать правильные команды. Но прежде чем это делать, нужно разобраться в главном вопросе: Что такое Windows PowerShell, для каких целей он служит и какие функции выполняет.
Краткий обзор программы
По сути, это усовершенствованная версия MS-DOS – старейшей дисковой операционной системы от компании Microsoft, выпущенной еще в середине 80-х гг. прошлого века. Она содержала в себе приложения, с функцией интерпретаторов, далеких от совершенства, умевших задавать несколько простых команд.
Разработчики неоднократно пытались компенсировать недостатки MS-DOS дополнительными компонентами для запуска сценария, такими как MS Script Host, с языками вроде Jscript, но это решало проблему лишь частично. В 2003 г. началась разработка программы способной заменить старую оболочку, получившую название Monad, известную сейчас как PowerShell. Хотя его впервые запустили в конце 2006 года и включили в ОС Windows XP, в завершенном виде он вышел только спустя 10 лет непрерывных доработок, в 2016 г. когда получил открытый исходный код. PowerShell широко используется в Windows 7, 8 и 10.
Windows PowerShell – что это такое
Ответить на этот вопрос в двух словах не получится, он слишком сложный и требует детального рассмотрения. Это средство автоматизации с расширяемыми свойствами и открытым исходным кодом – оболочка, заключающая в себе интерфейс командной строки с языком сценариев для выполнения скриптов, содержащихся в ней. Набор скриптов, заключенных в системные файлы имеет расширение PS1, но для удобства пользователей запускается как обычные BAT и CMD файлы.
Таким образом, PowerShell – это не что иное, как скриптовый язык, созданный на платформе .NET для выполнения задач по части управления файлами, сохраненными на системном диске, запущенными процессами и службами. Кроме того, ему подчинено управление аккаунтами в сети Интернет и любыми настройками, от системных, до настроек функциональности отдельных приложений. Но сам по себе PowerShell только оболочка, основные функции выполняют сопутствующие элементы, наполняющие ее. Далее постараемся разобраться в PowerShell, чтобы работа с утилитой стала понятна даже «чайникам».
Командлеты
Самые важные — это командлеты, исполняемые файлы, содержащие в себе собственную программу, загружаемую в компьютер для выполнения поставленных задач. Они являются главной составляющей Виндовс Пауэр Шелл, отвечая за его функциональность, и представляют собой набор команд для запуска сценария, вводящегося в командной строке.
Это несколько отличается от запросов, вводимых в поисковой строке браузера, но имеет те же принципы. В оболочке содержится сохраненная коллекция из сотен таких команд, отвечающих за определенные задачи. Формируются командлеты по обычному принципу Глагол + Существительное, что отражает их назначение.
Конвейер
Второй по значимости элемент (тип команд) PowerShell, передающий выходные данные одних командлетов во входные данные других, служит как бы посредником между ними. Конвейер служит, главным образом, для передачи и возврата не только командлетов, но и любых других объектов. Способен он выполнять и более сложные и ответственные задачи. А наиболее важно то, что для этого не требуется писать сложные алгоритмы и сценарии.
Разработчики Microsoft при создании конвейера, использовали как наглядный пример аналог, задействованный в Linux, но не копировали его, а сделали его максимально удобным и функциональным. Если сравнивать их, общая между ними только характеристика функций, выраженная в фактически непрерывном потоке данных, содержащих миллионы символов.
Сценарии
Сценарии — менее значимые типы команд в PowerShell, являющие собой блоки кодов, сохраняющиеся в отдельном от остальных файле, но так же поддерживающие расширение PS1. Главным их преимуществом служит то, что сохраненные коды не нужно каждый раз набирать в ручном режиме. Не имеет значения, в каком из текстовых редакторов они пишутся, хоть в Word, хоть Paint, принципиально только придерживаться установленного расширения.
В самой оболочке присутствует интегрированная в нее среда для сценариев, воспользовавшись которой можно еще больше упростить их написание. Для их создания, установлены правила оформления текста, перед именем используется символ «$», путь к сохраненному файлу заключается в фигурные скобки, а обращение к свойствам происходит с использованием «.» впереди. Сценарии дополняются аргументами с использованием круглых скобок и комментариями с оформлением символами «#».
Дополнения
Кроме стандартных типов команд и 240 командлетов, содержащихся в PowerShell, в него включено множество дополнений, призванных еще больше упростить работу и расширить функциональные возможности. Список наиболее важных дополнений:
- C WS-Management, одной из опций «Remonting», появляется возможность вызова сценариев и командлетов на удаленных машинах, одной или сразу нескольких. С его помощью отслеживается состояние выполнения команд, по результатам выданным объектами сериализации и структуризации. Дополнительно возможна установка интерактивных сессий.
- С помощью «Фоновых работ», можно перевести вызов команд в асинхронную последовательность. Для запуска используются опции локальной машины, а при желании и сразу нескольких удаленных. Единственное неудобство – использование интерактивных командлетов становится в этом случае невозможным.
- Применяя опции «Модулей» намного проще становится организация сценариев и их помещение в самодостаточные модули. При этом, их коды выполняются в независимом контексте, не оказывая заметного влияния на структуру окружения, ограниченного при организации. Функциональное содержание модулей имеет 3 типа: приватное, публичное и переменное.
- При помощи подмножества «Языков данных» отделяются их определения от исполняемых кодов для сценариев. Благодаря этому, становится возможен импорт в процессе их выполнения локализованных строк, помещающихся в тело сценариев.
- С «Отладкой сценариев» удобнее установка точек прерывания, в теле их самих или в сопутствующих функциях оболочки. Точки прерывания устанавливаются в любом месте в столбцах и строках, для чтения, команд или записи. Их можно также устанавливать и контролировать, при помощи командлетов, имеющих отношение к сценариям.
- Функции «Событирования» направлены на прослушивание, перенаправление, выполнение действий и управление возникающих событий. Данная процедура включает оповещения о любых изменениях состояния объектов, находящихся под управлением. Кроме того, предполагает подписку сценариев на ObjectEvents, с последующей синхронной и асинхронной обработкой.
- Использование «Advanced Functions», упрощает разработку командлетов полноценного образца, при помощи возможностей самой программы и включенных в нее элементов.
- Возможности «Обработки ошибок», позволят использовать разные типы исключений каждого блока (catch) по-отдельности.
Как запустить PowerShell
Дополнительное удобство программы в том, что запускается PowerShell при помощи разных способов, отличающихся в техническом плане, но идентично для всех версий Виндовс, в том числе Windows 10. Благодаря этому, каждый подбирает индивидуальный подход, в зависимости от ситуации. Существует несколько способов запуска.
При помощи «Поиска»
Для этого потребуется кликнуть по соответствующему значку, размещенному на панели задач, или применить комбинацию клавиш «Win + S». В отрывшемся окне, в поисковой строке набрать «powershell», а в выданном результате выбрать «Классическое предложение». Можно также вызвать контекстное меню правым кликом, где воспользоваться «Запуском от имени администратора».
Через меню «Пуск»
Кликом по кнопке «Пуск» открыть список приложений, в сортированной группе озаглавленной «W» выбрать папку с программой. Развернуть ее и кликнуть по приложению в верхней строчке. Здесь также в виде варианта, можно вызвать контекстное меню правой кнопкой мыши и запустить «от имени администратора».
С использованием сочетания клавиш
Этот способ подразумевает предварительное действие, заключающееся в замене командной строки оболочкой «Widows PowerShell» с функцией «Меню Win + X». После этого войти в соответствующее меню сочетанием клавиш, или через контекстное меню правым кликом по кнопке «Пуск», где выбрать нужный пункт в представленном списке.
Через диалог «Выполнить»
Один из простейших способов, с открытием диалогового окна «Выполнить». Для его вызова, применить сочетание клавиш «Win + R», в строке «Открыть» ввести команду с именем программы. Для ее запуска нажать на клавишу «Enter» или кнопку «Ок» на панели окна.
С помощью «Диспетчера задач»
Чтобы открыть диспетчер, применить сочетание клавиш «Ctrl + Shift + Esc», в открывшемся окне, во вкладке «Файл» выбрать вариант «Запуска новой задачи». В новом окне, напротив строки «Открыть», вписать «powershell» и нажать на «Enter». В случае если требуется создание задачи от имени администратора, отметить галочкой соответствующую опцию и подтвердить нажатием по кнопке «Ок».
Через «Проводник»
После его открытия, потребуется указать имя папки или диска, где будет запускаться программа. На вкладке «Файл» выбрать вариант «Запустить Widows PowerShell» и нажать на нужный пункт.
Через системную папку
В поисковой строке ввести адрес программы: «C:\Windows\System32\WindowsPowerShell\v1.0». В открывшемся списке выбрать папку «powershell.exe» и открыть ее двойным левым кликом. Чтобы упростить процесс в будущем, можно создать ярлык файла и закрепить в любом удобном месте: на панели задач, в меню «Пуск», или рабочем столе. При необходимости запуск оболочки будет осуществляться двойным кликом по иконке.
Процедура использования утилиты
При первичном ознакомлении с PowerShell, он представляется непостижимым, как формулы в высшей математике, но это обманчивое впечатление. В действительности, использовать программу достаточно легко, если разобраться в ее основах: принципах работы, в особенностях ввода и выполнения команд. В этом, разные типы несколько отличаются, но принципы и правила остаются общими для всех.
Работа с командлетами
На простом примере, команда, задающаяся как «Get-Help» — это своеобразный справочник утилиты, предоставляющий при вводе общую информацию. Если нужна справка по определенному процессу, например о подключенных дисках, нужно задать команду – «Get-Help Get-PSDrive», и так по любому вопросу, меняя только имя командлета. Для каких либо действий, к примеру, очистки корзины от файлового мусора, обычно используется «Clear-RecycleBin», применяющийся и для более важных задач в обслуживании ПК и для написания скриптов. Но отвечает он и за такой простой процесс, как очистка системных корзин. Прежде нужно указать диск, подлежащий очистке, по принципу: «Clear-RecycleBin C:» для подтверждения действия ввести символ «Y» и нажать на «Enter».
Работа с конвейером
В работе, конвейер чрезвычайно прост и удобен, чем особенно выделяется на фоне других типов команд. Например, если выводить результат Get-Process, содержащий информацию об активных процессах на ПК в командлет Soft-Object, он отсортирует их по дескрипторам. Переведя полученные значения в Where-Object, произойдет фильтрация этих процессов по заданному параметру, к примеру, наименьшего объема страничной памяти. А если и этот результат вывести в Select-Object, он выделит лишь первые 10 процессов, с учетом числа дескрипторов.
Или еще один простой пример, применяющийся для получения информации о самых тяжеловесных файлах, хранящихся на системном диске: Команда Get-ChildItem, открывает каталог для выбора объекта, Sort-Object отсортирует выбранный объект, а Select-Object укажет его нужные свойства.
Работа со сценарием
При создании алгоритмов, часто применяется Windows PowerShell ISE, специально созданный механизм, в том числе и для использования сценариев. В нем, под названием «Безымянный 1.ps1» вводится тело кода. Разберем на простом примере: «WMID WebMoney» в названии задать условно «wmid», сохранить файл в корне диска С. Для запуска потребуется войти в каталог, применяя команду «cd C:\» имя файла должно значиться в таком ключе: «.\wmid». Примечательно, что сценарии запускаются и из командной строки ОС, но для этого нужно изменить путь к нему: «powershell.exe C:\ wmid.ps1». При этом важно помнить, что выполнять сценарии по умолчанию запрещается, для получения разрешения на такие действия, следует задать команду Set-ExecutionPolicy.
Самые полезные командлеты PowerShell
В оболочке собран их внушительный каталог, представленный сотнями команд. Запомнить все эти названия и приложенные к ним свойства, не представляется возможным. Но этого и не нужно делать, большинство их используется крайне редко, а то и вовсе не применимы на практике. Следует обратить внимание лишь на самые важные, практичные, несущие в себе полезные функции.
Наиболее полезные в применении:
- Get-Help – справочник по назначению командлетов и общим свойствам оболочки;
- Update-Help — загрузка и установка обновленных справочных данных;
- Get-Command – поисковик требуемых команд, с авто заполнением строки;
- Get-Alias – отражает установленные псевдонимы, общим списком или с конкретикой;
- Get-PSDrive – представляет запущенные диски и происходящие на них процессы;
- Install-WindowsFeature – ролевой и компонентный установщик;
- Uninstall-WindowsFeature – ролевой и компонентный деинсталлятор;
- Get-History – отвечает за возвращение командных списков, выполненных при входе.
- $hversion – возвращает версию утилиты
Переменные:
- Get-Variable – показывает списком все переменные с учетом их значений;
- New-Variable – используется для настройки ново созданных переменных;
- Set-Variable – устанавливает новые значения, если они не значатся в списке;
- Clear-Variable – деинсталлятор содержания, сохраняющий образ;
- Remove-Variable — деинсталлятор командлетов и их составляющих.
Форматирование:
- Format-List – расширенный справочник;
- Format-Table – выводит таблицу результатов отдельных команд;
- Format-Wide — расширенная таблица по результатам, со свойствами отдельных объектов.
Интернет:
- Enable-NetAdapter – для включения адаптера;
- Rename-NetAdapter – задает новое имя и представление;
- Restart-NetAdapter – используется для перезапуска;
- Get-NetIPAddress – предоставляет данные по конфигурации прокси-сервера;
- Set-NetIPAddress – задает новую конфигурацию прокси-серверу;
- New-NetIPAddress – занимается созданием и настройкой прокси-сервера;
- Remove-NetIPAddress – деинсталлятор прокси-сервера;
- New-NetRoute – используется для внесения дополнительных записей;
- Get-NetIPv4Protocol — предоставляет данные по протоколу IPv4;
- Get-NetIPInterface — отражает свойства и характеристики веб-интерфейса IP.
Элементы:
- Get-Item — принимает элементы по заданному пути;
- Move-Item – для перемещения элементов по другим папкам;
- New-Item – используется для создания и оформления;
- Remove-Item – деинсталлятор отмеченных элементов;
- Get-Location – показывает местонахождение в настоящем времени.
Фоновые задания:
- Start-Job – выполняет запуск;
- Stop-Job – останавливает работу;
- Get-Job – открывает список;
- Receive-Job – предоставляет информацию о результатах;
- Remove-Job – деинсталлятор фоновых задач.
Объекты:
- Measure-Object – используется для расчета числовых агрегирующих параметров;
- Select-Object – для выбора с указанием конкретных свойств;
- Where-Object – отражает условия касательно выборки по значению и свойствам.
Службы и процессы:
- Get-Process – показывает информацию об активных процессах ПК;
- Start-Process – производит запуск на ПК;
- Stop-Process — прекращает работу избранных;
- Get-Service – предоставляет данные об активных службах;
- Restart-Service – осуществляет перезапуск;
- Start-Service – используется для подключения выбранных;
- Stop-Service – ставит на паузу процесс;
- Set-Service – изменяет свойства служб и режим подключения.
Компьютер и система:
- Restart-Computer – используется для перезапуска ОС;
- Checkpoint-Computer — для создания системной восстановительной копии для ПК;
- Restore-Computer – отвечает за запуск восстановленной системы;
- Remove-Computer — деинсталлирует локальный ПК из доменного имени;
- Clear-EventLog – очищает список записей в журнале.
Контент:
- Get-Content – принимает содержимое различных элементов;
- Clear-Content — стирает содержимое, но сохраняет образы;
- Set-Content – используется для перезаписи.
Что такое PowerShell ISE
Это графическая оболочка скриптового языка, идущая в комплекте с утилитой в виде ее приложения, главным образом для пуска независимых консолей. В процессе запуска, поддерживается Юникодом и символическими стандартами, с доступом к закладкам интерфейса основной программы. Разработана она для создания скриптов, редактирования и управления ими, с функцией отслеживания их местонахождения. Кроме этого, умеет работать с текстовыми документами в любом формате и файлами XML, выполнять выделенные фрагменты сценариев, а за счет встроенного редактора, способна обновлять интерфейс, расширяя и дополняя его.
Удобство работы создает цветовая подсветка синтаксиса, что существенно облегчает тестирование на предмет выявления ошибок и несоответствий в кодах. При помощи среды может копировать и менять значительные фрагменты в кодах, запускать отдельные части скриптов. Отмечается, что ISE намного превосходит консоли самой Пауэер Шелл, и вполне способна стать ее заменой.
Удаление программы
Microsoft PowerShell системный компонент, поэтому удалить его, в принципе нельзя. Конечно, при большом желании можно воспользоваться нашей статьей и удалить этот системный компонент, но это может привести к неработоспособности системы, поэтому не рекомендуется это делать.
Хотя стоит заметить, что иногда необходимо удалить Windows PowerShell 1.0, поскольку операционная система может не обновляться из-за этого элемента. Сделать это можно так:
- Запускаем системный поиск и вводим appwiz.cpl.
- В окне выбираем – Просмотр установленных обновлений.
- Ищем нужный компонент в списке обновлений, обычно это KB928439 и удаляем его.
Windows PowerShell, даже с большой натяжкой нельзя назвать простой и доступной программой, она сложная для понимания, и освоить ее за короткий промежуток времени не получится. Но учитывая тот факт, что создавалась она отнюдь не для программистов, а для начинающих пользователей, не настолько она непостижима, как может показаться. Очевидным преимуществом оболочки является ее удобство и автоматизированный процесс, а все что потребуется – только вникнуть в тонкости.