- Что такое PowerShell? What is PowerShell?
- Shell Shell
- Язык сценария Scripting language
- Управление конфигурацией Configuration management
- Дальнейшие действия Next steps
- Начало работы Getting started
- Использование PowerShell PowerShell in action
- Руководство по Windows PowerShell для начинающих
- Руководство по Windows PowerShell для начинающих
- Написание и запуск скриптов
- Командлеты
- Параметры
- Для чего нужен Windows PowerShell – как его использовать
- Что такое Windows PowerShell
- Как запустить Windows PowerShell
- Как взаимодействовать с Windows PowerShell
- Что такое Windows PowerShell ISE
- Обзор интегрированной среды сценариев Windows PowerShell Exploring the Windows PowerShell ISE
- Строка меню Menu Bar
- Вкладки Windows PowerShell Windows PowerShell Tabs
- Панель инструментов Toolbar
- Вкладка сценария Script Tab
- Область сценариев Script Pane
- Область консоли Console Pane
- Строка состояния Status Bar
- Ползунок для размера текста Text-Size Slider
Что такое PowerShell? What is PowerShell?
PowerShell — это кроссплатформенное решение для автоматизации задач, которое включает оболочку командной строки, скриптовый язык и платформу управления конфигурацией. PowerShell is a cross-platform task automation solution made up of a command-line shell, a scripting language, and a configuration management framework. PowerShell поддерживается в Windows, Linux и macOS. PowerShell runs on Windows, Linux, and macOS.
Shell Shell
PowerShell — это современная командная оболочка, в которой реализованы лучшие возможности других популярных оболочек. PowerShell is modern command shell that includes the best features of other popular shells. В отличие от большинства оболочек, которые только принимают и возвращают текст, PowerShell принимает и возвращает объекты .NET. Unlike most shells that only accept and return text, PowerShell accepts and returns .NET objects. Это решение предлагает следующие возможности: The shell includes the following features:
- надежный журнал командной строки; Robust command-line history
- заполнение нажатием клавиши TAB и подстановка команд (см. раздел about_PSReadLine); Tab completion and command prediction (See about_PSReadLine)
- поддержка [псевдонимов][] команд и параметров; Supports command and parameter aliases
- создание [конвейера][] для объединения команд; Pipeline for chaining commands
- система [справки][] в консоли, похожая на страницы man в Unix. In-console help system, similar to Unix man pages
Язык сценария Scripting language
В качестве скриптового языка PowerShell обычно используется для автоматизации процессов управления системами. As a scripting language, PowerShell is commonly used for automating the management of systems. Это решение также часто используется для создания, тестирования и развертывания решений в средах CI/CD. It is also used to build, test, and deploy solutions, often in CI/CD environments. В основе PowerShell лежит среда CLR .NET. PowerShell is built on the .NET Common Language Runtime (CLR). Все входные и выходные данные являются объектами .NET. All inputs and outputs are .NET objects. Вам не нужно анализировать текстовые выходные данные для извлечения информации из них. No need to parse text output to extract information from output. Скриптовый язык PowerShell предлагает следующие возможности: The PowerShell scripting language includes the following features:
- расширяемость с использованием [функций][], [классов][], [скриптов][] и [модулей][]; Extensible through functions, classes, scripts, and modules
- расширяемая система форматирования для удобного вывода; Extensible formatting system for easy output
- расширяемая система типов для создания динамических типов; Extensible type system for creating dynamic types
- встроенная поддержка распространенных форматов данных, таких как CSV, JSON и XML. Built-in support for common data formats like CSV, JSON, and XML
Управление конфигурацией Configuration management
PowerShell Desired State Configuration (DSC) — это платформа управления в PowerShell, которая позволяет управлять корпоративной инфраструктурой, используя конфигурацию как код. PowerShell Desired State Configuration (DSC) is a management framework in PowerShell that enables you to manage your enterprise infrastructure with configuration as code. С помощью DSC можно выполнять следующие задачи: With DSC, you can:
- создавать декларативные конфигурации и пользовательские скрипты для повторяемых развертываний; Create declarative configurations and custom scripts for repeatable deployments
- применять параметры конфигурации и настраивать информирование о смещении конфигурации; Enforce configuration settings and report on configuration drift
- развертывать конфигурации с помощью моделей принудительной отправки или опроса. Deploy configuration using push or pull models
Дальнейшие действия Next steps
Начало работы Getting started
Не знакомы с PowerShell и не знаете, с чего начать? Are you new to PowerShell and don’t know where to start? Просмотрите следующие ресурсы: Take a look at these resources.
Использование PowerShell PowerShell in action
Узнайте, как PowerShell используется в разных сценариях и на разных платформах. Take a look at how PowerShell is being used in different scenarios and on different platforms.
Руководство по Windows PowerShell для начинающих
Руководство по Windows PowerShell для начинающих
В этой статье про PowerShell для начинающих мы посмотрим, как писать скрипты, которые помогают оптимизировать управление Windows-окружением.
PowerShell — это объектно-ориентированный программный движок и скриптовый язык с интерфейсом командной строки, предоставляющий широкие возможности для конфигурирования операционных систем семейства MS Windows. Он предлагает как чисто консольный интерфейс, так и полноценную среду разработки PowerShell ISE (Integrated Scripting Environment, встроенное скриптовое окружение) для скриптов.
Для запуска интерфейса командной строки введите powershell в меню «Выполнить» (WinKey + R). PowerShell ISE запускается с помощью команды «PowerShell ISE» в том же меню. ISE более предпочтительно, так как предоставляет более широкие возможности разработчику благодаря подсветке синтаксиса, функции автозаполнения кода и другим особенностям, присущим многим «большим» IDE.
Среда разработки Windows PowerShell ISE
Написание и запуск скриптов
Скрипты сохраняются в виде файлов с расширением .ps1 . Несмотря на то, что PowerShell уже давно является нативной частью ОС Windows, вы не сможете запустить его скрипты простым двойным щелчком. Для этого надо кликнуть правой кнопкой по скрипту и выбрать «Запустить в PowerShell».
Также существуют системные политики, ограничивающие выполнение скриптов. Можно проверить текущие параметры политики, введя команду Get-ExecutionPolicy . Результатом будет одно из следующих значений:
- Restricted — выполнение скриптов запрещено. Стандартная конфигурация;
- AllSigned — можно запускать скрипты, подписанные доверенным разработчиком; перед запуском скрипта PowerShell запросит у вас подтверждение;
- RemoteSigned — можно запускать собственные скрипты или те, что подписаны доверенным разработчиком;
- Unrestricted — можно запускать любые скрипты.
Для начала работы необходимо изменить настройку политики запуска на RemoteSigned, используя команду Set-ExecutionPolicy :
После выполнения команды можно будет запускать свои скрипты
Командлеты
Командлеты — это команды с предопределённой функцией, подобные условным операторам в языках программирования. У них есть несколько ключевых особенностей:
- существуют системные, пользовательские и опциональные командлеты;
- результатом выполнения командлета будет объект или массив объектов;
- командлеты могут обрабатывать данные и передавать их другим командлетам с помощью конвейеров;
- командлеты нечувствительны к регистру, так что нет никакой разницы между Get-ADUser , get-aduser и gEt-AdUsEr ;
- в качестве разделителя используется символ ; .
Каждый командлет содержит в себе глагол и существительное, разделяемые дефисом. Например:
- Get-Process — отобразить текущие процессы, запущенные на компьютере;
- Get-Service — отобразить список служб и их статус;
- Get-Content — отобразить содержимое указанного файла, например Get-Content C:\Windows\System32\drivers\etc\hosts .
При необходимости список всех доступных командлетов можно вывести с помощью Get-Help-Category. Запомните эту команду — она крайне важна для тех, кто изучает PowerShell с нуля, так как помогает быстрее начать ориентироваться в его возможностях.
Результат выполнения команды Get-Help-Category
Также можно создавать свои командлеты, но эта тема выходит за рамки нашего руководства по PowerShell для начинающих.
Параметры
У каждого командлета есть несколько параметров, определяющих его работу. PowerShell ISE автоматически предлагает все доступные параметры с отображением их типа. Например, Get-Service-NameW* выводит список служб, у которых имя начинается с W . Если вы забыли, какие параметры у введённого командлета, воспользуйтесь Get-Member .
Для чего нужен 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 Exploring the Windows PowerShell ISE
Интегрированная среда скриптов (ISE) Windows PowerShell позволяет создавать, выполнять и отлаживать команды и скрипты. You can use the Windows PowerShell Integrated Scripting Environment (ISE) to create, run, and debug commands and scripts. Интегрированная среда сценариев Windows PowerShell состоит из строки меню, вкладок Windows PowerShell, панели инструментов, вкладок сценариев, области сценариев, области консоли, строки состояния, ползунка для размера текста и контекстной справки. The Windows PowerShell ISE consists of the menu bar, Windows PowerShell tabs, the toolbar, script tabs, a Script Pane, a Console Pane, a status bar, a text-size slider and context-sensitive Help.
Строка меню Menu Bar
Строка меню содержит меню Файл, Правка, Вид, Сервис, Отладка, Надстройки и Справка. The menu bar contains the File, Edit, View, Tools, Debug, Add-ons, and Help menus. Кнопки в меню позволяют выполнять задачи, связанные с написанием и запуском сценариев и выполнением команд в ISE Windows PowerShell. The buttons on the menus allow you to perform tasks related to writing and running scripts and running commands in the Windows PowerShell ISE. Кроме того, дополнительные средства могут быть помещены в строку меню при помощи запуска скриптов, которые используют Иерархию объектной модели интегрированной среды сценариев. Additionally, an add-on tool may be placed on the menu bar by running scripts that use the The ISE Object Model Hierarchy.
Вкладки Windows PowerShell Windows PowerShell Tabs
Вкладка Windows PowerShell — это среда, в которой выполняется сценарий Windows PowerShell. A Windows PowerShell tab is the environment in which a Windows PowerShell script runs. Вы можете открыть в ISE Windows PowerShell новые вкладки Windows PowerShell, чтобы создать отдельные среды на локальном или удаленных компьютерах. You can open new Windows PowerShell tabs in the Windows PowerShell ISE to create separate environments on your local computer or on remote computers. Число одновременно открытых вкладок PowerShell не может превышать восьми. You may have a maximum of eight PowerShell tabs simultaneously open.
Панель инструментов Toolbar
На панели инструментов расположены следующие кнопки. The following buttons are located on the toolbar.
Кнопка Button | Компонент Function |
---|---|
Создать New | Открывает новый сценарий. Opens a new script. |
Открыть Open | Открывает существующий сценарий или файл. Opens an existing script or file. |
Сохранить Save | Сохраняет сценарий или файл. Saves a script or file. |
Вырезать Cut | Вырезает выбранный текст в буфер обмена. Cuts the selected text and copies it to the clipboard. |
Copy. Copy | Копирование выбранного текста в буфер обмена. Copies the selected text to the clipboard. |
Вставить Paste | Вставляет содержимое буфера обмена в положение курсора. Pastes the contents of the clipboard at the cursor location. |
Очистка области вывода Clear Output Pane | Очищает все содержимое в области вывода. Clears all content in the Output Pane. |
Отменить Undo | Отменяет последнее действие. Reverses the action that was just performed. |
Повторить Redo | Выполняет последнее отмененное действие. Performs the action that was just undone. |
Запустить сценарий Run Script | Запускает сценарий. Runs a script. |
Запуск выбранного Run Selection | Запускает выбранный фрагмент сценария. Runs a selected portion of a script. |
Остановить выполнение Stop Execution | Останавливает выполняемый сценарий. Stops a script that is running. |
Создать вкладку удаленного использования PowerShell New Remote PowerShell Tab | Создает вкладку PowerShell, запускающую сеанс на удаленном компьютере. Creates a new PowerShell Tab that establishes a session on a remote computer. Отображается диалоговое окно, предлагающее ввести сведения для установки удаленного подключения. A dialog box appears and prompts you to enter details required to establish the remote connection. |
Запустить PowerShell.exe Start PowerShell.exe | Открывает консоль Windows PowerShell. Opens a PowerShell Console. |
Показать область сценариев сверху Show Script Pane Top | Перемещает область сценариев в верхнюю часть экрана. Moves the Script Pane to the top in the display. |
Показать область сценариев справа Show Script Pane Right | Перемещает область сценариев в правую часть экрана. Moves the Script Pane to the right in the display. |
Развернуть область сценариев Show Script Pane Maximized | Развертывает область сценариев. Maximizes the Script Pane. |
Вкладка сценария Script Tab
Отображает имя редактируемого сценария. Displays the name of the script you are editing. Можно щелкнуть вкладку сценария, чтобы выбрать сценарий для изменения. You can click a script tab to select the script you want to edit.
При наведении указателя мыши на вкладку сценария в подсказке отображается полный путь к файлу сценария. When you point to the script tab, the fully qualified path to the script file appears in a tooltip.
Область сценариев Script Pane
Позволяет создавать и запускать сценарии. Allows you to create and run scripts. В области сценариев можно открыть, изменить и запустить существующие сценарии. You can open, edit and run existing scripts in the Script Pane. Дополнительные сведения: Написание и запуск сценариев в интегрированной среде сценариев Windows PowerShell. For more information, see How to Write and Run Scripts in the Windows PowerShell ISE.
Область консоли Console Pane
Отображает результаты выполненных команд и сценариев. Displays the results of the commands and scripts you have run. Команды можно выполнять в области консоли. You can run commands in the Console pane. Вы также можете копировать и очищать ее содержимое. You can also copy and clear the contents in the Console Pane.
См. сведения в следующих статьях: For more information, see the following articles:
Строка состояния Status Bar
Позволяет узнать, выполнены ли запущенные команды и сценарии. Allows you to see whether the commands and scripts that you run are complete. Эта строка находится в самом низу экрана. The status bar is at the very bottom of the display. В ней отображаются отдельные фрагменты сообщений об ошибках. Selected portions of error messages are displayed on the status bar.
Ползунок для размера текста Text-Size Slider
Увеличивает или уменьшает размера текста на экране. Increases or decreases the size of the text on the screen.