- Для чего нужен Windows PowerShell – как его использовать
- Что такое Windows PowerShell
- Как запустить Windows PowerShell
- Как взаимодействовать с Windows PowerShell
- Что такое Windows PowerShell ISE
- Windows PowerShell: что это за программа
- Что такое Windows PowerShell
- Как запустить программу Windows PowerShell
- Как пользоваться программой Windows PowerShell
- Список командлетов для Windows PowerShell
- Основы Windows PowerShell
- Что способствовало появлению Windows PowerShell?
- Что такое Windows PowerShell?
- Версии Windows PowerShell
- Язык PowerShell
- Оболочка Windows PowerShell
- Командлеты в PowerShell
- Конвейер в PowerShell
- Фоновое исполнение заданий
- Удаленное управление на PowerShell
- Сценарии, функции и модули в Windows PowerShell
- Интегрированная среда сценариев Windows PowerShell (ISE)
Для чего нужен Windows PowerShell – как его использовать
Чтобы понять, что такое Windows PowerShell, мы должны сначала объяснить, что такое оболочка. Оболочка или интерпретатор команд – это программа, которая позволяет взаимодействовать с операционной системой через терминал и в командной строке. Используя оболочку можно давать команды системе и открывать программы.
Windows PowerShell – это усовершенствованная оболочка, интегрированная во все операционные системы Microsoft, начиная с Windows 7. Она включает в себя интерактивные подсказки и среду сценариев, которую можно использовать по отдельности или в комбинации.
Что такое Windows PowerShell
Как следует из названия, Windows PowerShell – это оболочка командной строки. Она была разработана специально для использования системными администраторами и может использоваться для выполнения всех команд cmd.exe.
PowerShell позволяет вам взаимодействовать с операционной системой, используя преимущества инструментов, доступных из командной строки, и используя возможности программирования сценариев для автоматизации рутинной работы.
Давайте подробно рассмотрим, какие функции и преимущества предлагает эта оболочка от Microsoft:
- Интеграция с Microsoft .NET Framework. NET Framework – это среда управляемого выполнения для Windows, предоставляющая широкий спектр сервисов для запуска приложений. Команды сценариев PowerShell имеют доступ к ресурсам .NET Framework.
- Объектно-ориентированный. В отличие от большинства оболочек, которые принимают и возвращают чистый текст, все команды PowerShell, генерирующие выходные данные, возвращают объекты .NET Framework, устраняя необходимость разбора текста в случае, если выходные данные команды нужны для последующей команды.
- Command-Let. Windows PowerShell представляет концепцию command-let или cmdlet, инструмента командной строки с единственной функцией, встроенной в оболочку. Доступно более ста системных командлетов. Кроме того, вы можете писать собственные командлеты и делиться ими с другими пользователями. Каждый командлет может использоваться отдельно или в сочетании с другими для выполнения сложных задач.
- Предназначен для системных администраторов. PowerShell включает функции, предназначенные для системных администраторов, такие как возможность работы на удаленных компьютерах, доступ к реестру Windows и запуск или остановка служб.
Как запустить Windows PowerShell
После объяснения, что такое Windows PowerShell, давайте посмотрим, как его запустить.
- Нажимаем на клавиатуре компьютера клавиши Win (это клавиша с логотипом Windows) и R одновременно. Откроется командное окно «Выполнить».
- В поле Открыть: введите powershell и нажмите кнопку ОК .
Более современный способ – доступный в Windows 10 – щелкнуть правой кнопкой мыши по меню «Пуск» и выбрать соответствующий пункт из меню «Опытного пользователя»
Как взаимодействовать с Windows PowerShell
Все команды, доступные в командной строке Windows, доступны и могут также использоваться в PowerShell.
Мы можем использовать символы направления > для отправки вывода в файл или >> для добавления в файл. PowerShell использует псевдонимы для связи команд cmd.exe со своими командлетами. Например, команда cd является псевдонимом для командлета set-location, точно так же, как dir является псевдонимом для командлета get-children.
PowerShell можно использовать для запуска исполняемых команд или для работы непосредственно с реестром Windows без запуска его редактора.
Одна из сильных сторон этой оболочки – её командлеты. Каждый командлет представлен «глаголом», за которым следует тире и существительное.
Чтобы просмотреть полный список всех доступных командлетов, введите get-command. Чтобы получить информацию о конкретном командлете, введите get-help и имя командлета.
Оператор вертикальной черты | , позволяет отправить выходные данные одного командлета другому командлету, который, в свою очередь, будет использовать их в качестве входных данных. Используя его, мы можем подключить все необходимые командлеты, очевидно, при условии, что следующий командлет сможет интерпретировать выходные данные предыдущего.
Как мы объясняли ранее, командлеты возвращают чистые объекты .NET, а не текст. По этой причине командлет, расположенный справа от оператора | , может работать непосредственно со свойствами или методами вывода, созданного предыдущим командлетом.
Что такое Windows PowerShell ISE
Windows PowerShell ISE (интегрированная среда сценариев) – это приложение, появившееся в PowerShell 2.0. Она позволяет запускать команды и писать, тестировать и отлаживать сценарии в едином графическом интерфейсе пользователя на базе Windows.
Этот ISE включает командную панель, одну для сценариев и одну для вывода. Панель вывода отображает результаты команд, запущенных в двух других панелях. Кроме того, графическое окружение можно изменить, выбрав расположение блоков.
PowerShell ISE поддерживает многострочное редактирование, окрашивание синтаксиса, завершение с помощью клавиши TAB и выборочное выполнение и использует собственный профиль, отличный от того, который используется для настройки PowerShell.
Windows PowerShell: что это за программа
После перехода на операционную систему Windows 10 многие пользователи заметили в интерфейсе Проводника кнопку «Запустить PowerShell». В связи с этим в сети появилось много вопросов, пользователей интересовало, что это за программа Windows PowerShell и для чего она нужна. Если вас также интересует этот вопрос, то данный материал должен вам помочь.
Что такое Windows PowerShell
Windows PowerShell – это скриптовый язык и программа с интерфейсом командной строки для выполнения этих скриптов. Данный язык был выпущен в 2006 году в составе второго сервис-пака для Windows XP и с тех пор PowerShell является частью всех операционных систем от Microsoft. В 2008 году появилась вторая версия данного языка, и начиная с Windows 7 используется именно она. Файлы со скриптами Windows PowerShell имеют расширение PS1 и могут запускаться как привычные всем BAT и CMD файлы.
Windows PowerShell – это скриптовый язык, который разрабатывался в первую очередь для бизнес-клиентов Microsoft, которым нужно мощные инструменты для автоматизации задач по управлению серверами и компьютерами на базе Windows. В качестве основы для данного языка была использована платформа .NET, разрабатываемая компанией Microsoft с 2002 года.
Windows PowerShell позволяет автоматизировать массу разнообразных задач. С его помощью можно управлять файлами, службами, процессами, аккаунтами и настройками. Язык PowerShell понимает многие команды из обычной Командной строки Windows (CMD), но он имеет и свой собственный язык, состоящий из собственных команд, которые здесь называются командлетами.
Командлеты (на английском cmdlets) формируются по правилу Глагол-Существительное, например, Get-Help. Ознакомиться с основами Windows PowerShell можно с помощью справки (командлет «Get-Help»). Для получения общей информации просто введите команду «Get-Help», для получения справки о конкретном командлете введите «Get-Help Имя-командлета». Например, если ввести команду «Get-Help Get-Process», то мы получим справку о командлете Get-Process.
Как запустить программу Windows PowerShell
Программу Windows PowerShell можно запустить разными способами. Самый простой вариант, это просто воспользоваться поиском в меню «Пуск». Для этого откройте меню «Пуск», введите поисковый запрос «Windows PowerShell», после чего откройте найденную программу.
Также можно открыть меню «Выполнить» с помощью комбинации клавиш Windows-R и ввести команду «powershell».
В Windows 10 программу PowerShell можно запустить из любой папки. Для этого нужно нажать на кнопку «Файл» в верхнем левом углу Проводника и выбрать «Запустить Windows PowerShell».
Как пользоваться программой Windows PowerShell
Как мы уже сказали, с помощью программы PowerShell можно автоматизировать многие рутинные задачи в операционной системе Windows. Для примера мы продемонстрируем некоторые возможности, которыми обладает данный инструмент, для того чтобы стало понятно, как им пользоваться.
Очистка корзины . Для очистки корзины существует специальный командлет, который называется « Clear-RecycleBin ». Данный командлет пригодится при написании скриптов для обслуживания компьютеров. При выполнении командлета нужно указать диск, на котором нужно очистить корзину. Пример:
На скриншоте внизу видно, как выполняется данный командлет. После введения команды « Clear-RecycleBin c: » появляется запрос на подтверждение. Для того чтобы продолжить выполнение командлета нужно ввести букву «Y» и нажать Enter.
Если к командлету « Clear-RecycleBin c: » добавить « -Force », то очистка корзины выполнится без запроса на подтверждение. Скриншот внизу.
Архивация файлов . Для архивации и распаковки файлов предусмотрены командлеты « Compress-Archive » и « Expand-Archive «. Например, для того чтобы архивировать папку «C:\test\» в архив «C:\archive\test2.zip» нужно выполнить следующий командлет:
Compress-Archive -LiteralPath C:\test\ -DestinationPath C:\archive\test2.zip
В результате выполнения показанной выше команды, в папке «C:\archive\» появится файл «test2.zip», в котором будет заархивировано содержимое папки «C:\test\».
Список командлетов для Windows PowerShell
Для Windows PowerShell существует огромное количество разных командлетов и описать их все в одной статье не получится. Поэтому предлагаем ознакомиться с самыми востребованными из них:
- Get-Help – получение справки;
- Update-Help – обновление справки;
- Get-Command – поиск командлетов;
- Get-Alias – поиск псевдонимов для командлетов;
- Get-PSDrive – просмотр подключенных дисков;
- Get-Member – просмотр свойств и методов, которые есть у объекта;
- Get-WindowsFeature – просмотр сведений о доступных ролях и компонентах сервера;
- Install-WindowsFeature (аналог Add-WindowsFeature) — устанавливает роли или компоненты на нужный сервер;
- Uninstall-WindowsFeature (аналог Remove-WindowsFeature) – удаляет роли или компонента сервера;
- Get-History – просмотр истории команд, которые вводились в этой сессии;
- Get-Variable – просмотр списка переменных и их значений;
- New-Variable – создание новой переменной;
- Set-Variable – установка значения переменной;
- Clear-Variable – удаление значения переменной;
- Remove-Variable – удаление переменной и ее значения;
- Format-List – просмотр результата команды в виде списка свойств, где в каждой строке отдельное свойство;
- Format-Table — просмотр результата команды в формате таблицы;
- Format-Wide — просмотр результата команды в виде широкой таблицы, в которой показывается только одно свойство для каждого объекта;
- Format-Custom – просмотр результата команды с использованием пользовательского представления;
- Export-Csv – экспорт данных в формат CSV;
- Import-Csv – импорт данных из CSV файла;
- Export-Clixml — экспорт данных в формат XML;
Полный список командлетов для Windows PowerShell вы можете получить, выполнив командлет «Get-Command -CommandType cmdlet».
Основы Windows PowerShell
В данной статье мы рассмотрим такую технологию от компании Microsoft как Windows PowerShell, мы поговорим о том, что такое PowerShell, что такое командлеты и конвейер, как писать сценарии и модули, а также затронем другие не менее важные и полезные возможности Windows PowerShell.
Что способствовало появлению Windows PowerShell?
До появления PowerShell существовали (и существуют) следующие инструменты для автоматизации и администрирования сервисов: командная строка Windows и Windows Script Host. Но у этих технологий есть недостатки.
У командной строки Windows есть и возможность выполнять какие-то административные задачи и возможность записать алгоритм действий, сохранив его в виде скрипта (bat-файла), при этом можно использовать некие элементы программирования, например, использовать переменные, условные конструкции и даже что-то вроде циклов.
Большинство программных продуктов имеет консольный интерфейс, т.е. мы можем управлять программой, используя командную строку, при этом экономя ресурсы за счет отсутствия затрат на работу графического интерфейса. Компания Microsoft для серверной операционной системы Windows Server даже выпускает редакции без графического интерфейса (Server Core, в Windows Server 2019), но всего этого недостаточно, так как возможности командной строки ограничены, т.е. написать какую-то сложную логику для автоматизации чего-либо мы не сможем, а если и сможем, то на это нам потребуется время и знания.
Также недостатком командной строки является то, что для полноценного управления сервером мы используем различные консольные утилиты программных продуктов, и поэтому использовать командную строку для администрирования на самом деле сложно, с точки зрения того, что у всех этих утилит разный синтаксис, параметры, методы использования и для того чтобы выполнять типовые задачи, т.е. каждодневные, приходиться держать все это в памяти, а для выполнения нетиповых задач приходиться сначала почитать справку или документацию.
Технология Windows Script Host позволяет выполнять все административные задачи, что и командная строка, включая их автоматизацию путем написания WSH скриптов, но здесь мы уже можем использовать полноценные языки программирования (VBScript и JScript), т.е. можно реализовывать сложную логику и алгоритмы. К тому же с помощью WSH мы управляем программными продуктами через объектный интерфейс, другими словами Windows Script Host намного «круче» чем командная строка. Но данная технология также не стала тем идеальным инструментом администрирования и автоматизации этого администрирования для системных администраторов, так как Windows Script Host требовал знаний вышеперечисленных языков программирования, что для системных администраторов на самом деле лишнее. Администраторам нужно всего лишь простой инструмент администрирования с возможностью запрограммировать какие-то действия, а углубляться в объектные модели программных продуктов на языках программирования VBScript и JScript им не хочется.
В итоге компании Microsoft необходимо было разработать такой инструмент администрирования для системных администраторов, который бы на 100 процентов удовлетворял все потребности сисадминов как в плане возможностей администрирования и автоматизации, так и в плане удобства и простоты использования, таким образом, появился Windows PowerShell.
Что такое Windows PowerShell?
Windows PowerShell – это язык сценариев и командная оболочка Windows, которые разработаны для администрирования и конфигурирования операционных систем Windows.
PowerShell разработан на основе среды CRL и платформы .NET Framework и в отличие от командной строки, которая принимает и возвращает текст, Windows PowerShell работает с объектами. У каждого объекта в PowerShell есть свойства и методы, которые можно использовать для управления этими объектами.
В Windows PowerShell Microsoft разработала концепцию командлетов (cmdlets), которая представляет собой систему именования команд «Глагол-Существительное». Данная система позволяет системным администраторам быстрей освоить и упростить работу с PowerShell.
С помощью Windows PowerShell можно:
- Получать доступ к файловой системе;
- Управлять реестром;
- Управлять службами;
- Управлять процессами;
- Настраивать операционную систему;
- Устанавливать программное обеспечение;
- Устанавливать роли и компоненты сервера;
- Осуществлять администрирование и конфигурирование ролей и компонентов сервера;
- Писать и использовать сценарии для автоматизации управления и администрирования;
- Выполнять другие задачи системных администраторов.
Windows PowerShell содержит многие часто используемые утилиты и команды, запускаемые из командной строки, например ipconfig, ping и другие. Сделано это для того, чтобы облегчить переход системных администраторов с командной строки на PowerShell.
Также для удобства многие часто используемые команды и утилиты в PowerShell имеют синонимы (Alias), например cls — это синоним командлета Clear-Host, dir синоним Get-ChildItem (полный список синонимов можно посмотреть путем запуска командлета Get-Alias).
Для упрощения поиска нужной команды в PowerShell есть специальный командлет Get-Command, с помощью которого можно осуществлять поиск, как по глаголу, так и по существительному. Все команды в Windows PowerShell сгруппированы в модули (например, Hyper-V, NetTCPIP), что также упрощает поиск нужной команды.
После того как нужная команда найдена, можно посмотреть инструкцию по работе с этой командой, т.е. справку, для этих целей есть специальный командлет Get-Help, например следующая команда покажет справку по командлету Get-Command:
Справка в Windows PowerShell может быть краткой, детальной (параметр -Detailed), полной (параметр -Full), а также можно выводить только примеры (параметр — Examples). Следующая команда покажет только примеры использования командлета Get-Command:
Справка PowerShell обновляемая, т.е. ее можно обновить командой Update-Help.
Версии Windows PowerShell
Первая версия PowerShell 1.0 появилась 14 ноября 2006 года и выпускалась в виде отдельного дистрибутива, который можно было установить на следующие версии операционных систем Windows: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 и Windows Vista.
В Windows Server 2008 PowerShell 1.0 поставлялся в виде компонента, который также нужно было устанавливать.
Начиная с Windows 7 и Windows Server 2008 R2, PowerShell поставляется как неотъемлемый компонент системы (т.е. предустановленный, устанавливать его не надо). Ниже представлена таблица соответствия версии PowerShell и версии операционной системы Windows (т.е. какая версия PowerShell по умолчанию установлена в той или иной версии Windows):
Версия PowerShell | Версии Windows |
PowerShell 2.0 | Windows 7, Windows Server 2008 R2 |
PowerShell 3.0 | Windows 8, Windows Server 2012 |
PowerShell 4.0 | Windows 8.1, Windows Server 2012 R2 |
PowerShell 5.0 | Windows 10, Windows Server 2016 |
С каждой новой версией PowerShell становится все более мощным инструментом администрирования, для сравнения в первой PowerShell было около 130 командлетов, а в PowerShell 5.0 их уже более 600!
Узнать текущую версию PowerShell можно с помощью свойства PSVersion встроенной переменной $PSVersionTable, например, выполните следующую команду:
Или запустите командлет
где, значение PSVersion и будет версией PowerShell.
Язык PowerShell
PowerShell – это объектно-ориентированный скриптовой язык программирования.
Он используется для написания команд управления всеми компонентами операционной системы Windows в оболочке Windows PowerShell, а также для написания сценариев автоматизации задач администрирования в интегрированной среде сценариев Windows PowerShell (ISE). Язык PowerShell хоть и создан для задач администрирования, он является полноценным скриптовым языком программирования, так как имеет программные конструкции, которые присутствуют в каждом языке программирования, такие как: условия, циклы, обработка ошибок, работа с переменными, объектами, массивами.
Язык PowerShell имеет единый синтаксис написания команд и структуру именования этих команд по принципу «Глагол-Существительное», что делает данный язык интуитивно понятным как для программистов, так и для системных администраторов.
Более подробно о программировании на данном языке можете посмотреть в материале — Программирование на языке PowerShell.
Оболочка Windows PowerShell
Оболочка Windows PowerShell – это среда выполнения команд и сценариев на языке PowerShell.
Данная оболочка имеет те же возможности что и командная строка такие как: хранение истории выполнения команд, настройка внешнего вида оболочки, завершение выполнения команд сочетанием клавиш Ctrl+C, а также много других возможностей, которых нет в оболочке командной строки, например такая замечательная возможность как «подсветка синтаксиса» (появилась в PowerShell 5.0).
Запустить оболочку PowerShell можно несколькими способами, например:
- Из командной строки, набрав PowerShell;
- Через диалоговое окно «Выполнить» (сочетание клавиш Win+R), также набрав PowerShell;
- В Windows 7 — Пуск->Все программы ->Стандартные ->Windows PowerShell -> Windows PowerShell;
- В Windows 8.1 или Windows Server 2012 R2 — Пуск->Все программы ->Служебные ->Windows PowerShell;
- В Windows 10 или Windows Server 2016 — Пуск->Все программы -> Каталог Windows PowerShell (в группе W) -> Windows PowerShell.
Пример запуска PowerShell в Windows Server 2016
Скриншот оболочки PowerShell в Windows Server 2016
Командлеты в PowerShell
Командлет (cmdlet) – это команда Windows PowerShell, с помощью которой можно осуществлять взаимодействие с объектами операционной системы с целью их управления.
Данные команды являются частью языка PowerShell. Командлеты построены по принципу «Глагол-Существительное», разделенные дефисом (-); другими словами, мы сначала указываем, что делать, а через дефис — над чем. Например, командлет Get-Help, где Get — это глагол, означающий «Получить», а Help — существительное «Помощь» в контексте PowerShell «Показать – Справку». Командлеты PowerShell возвращают результаты в виде объектов, что является одним из главных отличий от командной строки Windows, в которой команды возвращают только текст на экран.
Кроме командлетов на получение данных (Get), существуют и такие типы командлетов как:
- Add – добавление данных;
- Clear – очистить;
- Enable – включить;
- Disable – выключить;
- New – создать;
- Remove – удалить;
- Set – задать;
- Start — запустить;
- Stop – остановить;
- Export – экспортировать;
- Import – импортировать;
- И еще много других.
Полный список командлетов в Windows PowerShell можно посмотреть с помощью специального командлета Get-Command. Например, запустите его с параметром -CommandType cmdlet, в итоге на экране у Вас отобразится список командлетов.
Как Вы уже поняли, у командлетов есть параметры, с помощью которых мы можем конкретизировать действия командлета. Параметры бывают обязательные и необязательные, например, у командлета Get-Command обязательных параметров нет.
Ниже на картинке представлен способ поиска командлета по глаголу (параметр Verb). В данном случае у нас отобразился список командлетов, которые умеют что-то перезапускать.
Для поиска командлета по существительному необходимо использовать параметр Noun. Например, ниже мы получили список командлетов, которые работают со службами.
Если Вы не нашли нужный командлет по полному названию можете использовать маску в формате *Текст*.
Конвейер в PowerShell
Одной из главных возможностей Windows PowerShell является возможность использования конвейера при выполнении команд.
Конвейер – это передача результата работы командлета через вертикальную черту (|) другому командлету.
При этом, как Вы помните, в PowerShell командлеты работают с объектами и возвращают объекты, соответственно по конвейеру передаются также объекты.
С помощью конвейера можно выполнять сложные задачи простым и удобным способом без необходимости написания сложных алгоритмов и сценариев.
Например, давайте узнаем название самого большого файла в каталоге «C:\Windows\System32» (простой пример конвейера).
- Get-ChildItem – командлет получения объектов в указанном каталоге;
- Sort-Object – командлет для сортировки объектов, в нашем случае мы сортируем по размеру файла (length -Descending);
- Select-Object – командлет выбора нужных свойств объекта, в нашем случае мы выводим стандартные поля и только самый первый объект, т.е. большой файл (параметр -First 1).
Все командлеты отделены друг от друга вертикальной чертой. Результат работы каждого командлета передается на вход другому командлету, т.е. сначала мы получаем все объекты в указанном каталоге, затем сортируем полученный результат и в заключение выбираем самый первый объект.
Фоновое исполнение заданий
В Windows PowerShell есть возможность фонового исполнения заданий, она представляет собой механизм, с помощью которого можно запустить на выполнение команду (например, которая долго выполняется) в фоновом режиме, т.е. после запуска Вы возвращаетесь в текущую сессию и можете продолжить работу, не дожидаясь окончания работы команды. Данная возможность Вам понадобится тогда, когда у Вас возникнет необходимость запустить команду, работа которой занимает достаточно продолжительное время, а как Вы знаете, в течение этого времени сессия оболочки PowerShell блокируется до завершения работы команды, а Вам нужно продолжать работать.
Всеми заданиями, которые запущенны в фоновом режиме, Вы можете управлять, например, посмотреть список заданий, остановить работу задания, удалить задание, и, конечно же, посмотреть результат работы задания.
В Windows PowerShell для работы с фоновыми заданиями есть следующие командлеты:
- Start-Job – запустить фоновую задачу;
- Stop-Job – остановить фоновую задачу
- Get-Job – посмотреть список фоновых задач;
- Receive-Job – посмотреть результат выполнения фоновой задачи;
- Remove-Job – удалить фоновую задачу;
- Wait-Job – перевести фоновую задачу на передний план, для того чтобы дожидаться ее окончания.
Для запуска в фоновом режиме необходимо написать команду Start-Job, а в фигурных скобках <> команду или набор команд, которые необходимо выполнить в фоновом режиме.
Например, давайте запустим какую-нибудь задачу (показать список служб) в фоновом режиме, затем посмотрим на список фоновых заданий и выведем на экран результат работы нашего задания (т.е. список служб).
Запуск задачи в фоновом режиме
Смотрим на список задач запущенных в фоновом режиме
Отображаем результат работы задания Job1
Как видим, у нас появилась задача со статусом «Completed», т.е. она уже выполнилась (просто Get-Service отрабатывает быстро).
Для того чтобы посмотреть результат работы фоновой задачи, т.е. командлета Get-Service, мы выполнили команду Receive-Job и передали ей имя задания (можно и значение идентификатора). В результате у нас отобразился список служб.
Удаленное управление на PowerShell
Windows PowerShell рассчитан не только на локальное использование, но и на удаленное выполнение команд. Данная возможность необходима, чтобы Вы могли со своего рабочего места управлять удаленными компьютерами, т.е. выполнять команды PowerShell.
Существует несколько способов удаленного управления:
- С помощью параметра –ComputerName (есть у многих команд). Другими словами Вы передаете имя компьютера, на котором необходимо выполнить команду, в качестве параметра. Способ обладает недостатком, так как ограничивается выполнением одной команды;
- С помощью сессий. Командлет Enter-PSSession (интерактивный сеанс). Таким способом Вы подключаетесь к удаленному компьютеру и все команды, которые Вы будете набирать в оболочке PowerShell, будут выполняться на удаленном компьютере так же, как если бы Вы набирали команды непосредственно на удаленном компьютере. Способ также обладает недостатком, так как сеанс ограничивается одним компьютером;
- С помощью командлета Invoke-Command. С помощью данного способа можно выполнять команды или сценарии как на одном компьютере, так и на нескольких.
Например, чтобы подключиться к удаленному компьютеру (в примере ниже ServerName) интерактивным сеансом выполните следующую команду:
Сценарии, функции и модули в Windows PowerShell
Если Вы написали некий алгоритм, скорей всего Вы захотите сохранить его, для того чтобы в дальнейшем им пользоваться. В Windows PowerShell для этих целей существует механизм использования сценариев.
Суть данного механизма следующая, Вы пишите нужный Вам набор команд и сохраняете его в качестве сценария — это простой текстовый файл с расширением .PS1.
Затем, для того чтобы выполнить этот сценарий, Вы просто запускаете его в оболочке PowerShell. При этом Вам необходимо либо указать полный путь к файлу сценария, либо перейти в каталог со сценарием и вызвать его по имени.
Важно!
По умолчанию выполнение сценариев в Windows запрещено! Для того чтобы посмотреть политику выполнения сценариев выполните командлет Get-ExecutionPolicy. В результате он вернет действующую политику, например:
- Restricted – блокируется выполнение любых сценариев (значение по умолчанию);
- AllSigned – разрешено выполнение сценариев, которые имеют цифровую подпись;
- RemoteSigned – разрешено выполнение локальных сценариев, все скачанные сценарии должны иметь цифровую подпись;
- Unrestricted — разрешено выполнение любых сценариев (не рекомендуется, так как небезопасно!).
Для разрешения выполнения сценариев необходимо использовать командлет Set-ExecutionPolicy с одним из вышеперечисленных параметров.
Например, для разрешения выполнения локальных сценариев выполним следующую команду, и согласимся с внесением изменений, нажав Y.
В сценарии можно передавать параметры, делать их обязательными или задавать значение по умолчанию.
В Windows PowerShell предусмотрен механизм создания собственных функций, которые также как и встроенные командлеты можно будет использовать в оболочке PowerShell.
Для этого необходимо указать ключевое слово Function и затем в фигурных скобках <> написать алгоритм работы этой функции, т.е. набор команд (например, какая-нибудь часто используемая процедура: создать пользователя с определенными правами, очистить определенные каталоги и так далее). Потом необходимо сохранить все это в сценарий, но только уже с расширением .psm1, так как этот файл будет являться уже модулем.
Это еще не все, этот файл необходимо поместить в каталог, в котором PowerShell ищет модули. Таких каталогов несколько (специальный каталог в профиле пользователя, каталог, где установлен PowerShell), их можно посмотреть в переменных окружения PowerShell. Для этого выполните следующую команду
После того как Вы поместите написанный Вами модуль в специальный каталог, Вы сможете обращаться к своим функциям как к обычным командам PowerShell.
Интегрированная среда сценариев Windows PowerShell (ISE)
Для того чтобы было удобно писать сценарии, функции и соответственно модули, компания Microsoft разработала специальную графическую программу Integrated Scripting Environment.
Integrated Scripting Environment (ISE) – интегрированная среда сценариев.
Работать в этой программе очень удобно, к тому же она имеет мощный функционал (создание множества вкладок со сценариями, область вывода, встроенный отладчик и другое).
Запустить ее можно следующим образом:
- В Windows 7 — Пуск->Все программы ->Стандартные ->Windows PowerShell -> Windows PowerShell ISE;
- В Windows 10 или Windows Server 2016 — Пуск->Все программы -> Каталог Windows PowerShell (в группе W) -> Windows PowerShell ISE.
Примечание! ISE не будет работать на системе Windows Server, установленной в варианте Server Core.
Скриншот интегрированной среды сценариев PowerShell (ISE) в Windows Server 2016
На этом у меня все, надеюсь, материал был Вам полезен! Удачи!