Учебное пособие по Powershell для начинающих

⚡ Умное резюме

PowerShell Scripting — это объектно-ориентированный механизм автоматизации, построенный на платформе .NET. Он объединяет командлеты, скрипты и язык сценариев, чтобы помочь ИТ-администраторам автоматизировать процессы. WindowsУправляйте службами и подключайте удаленные машины из одной командной строки.

  • 🚀 Запустите нужную оболочку: Откройте PowerShell или PowerShell ISE из меню «Пуск» и запускайте его от имени администратора, если вам требуются повышенные привилегии.
  • 🧩 Используйте командлеты, а не текстовые команды: Командлеты используют схему именования «глагол-существительное» и возвращают объекты .NET, поэтому выходные данные могут передаваться следующему командлету по конвейеру.
  • 🔐 Тщательно настройте политику выполнения: Используйте Set-ExecutionPolicy с RemoteSigned для обеспечения баланса между безопасностью и удобством при запуске скриптов .ps1.
  • 📁 Пишите многократно используемые скрипты .ps1: Объедините командлеты, переменные и конвейеры в текстовом файле с расширением .ps1, чтобы автоматизировать повторяющиеся административные задачи.
  • 🤖 Сочетание PowerShell и ИИ: Искусственный интеллект-помощники преобразуют простые запросы на английском языке в готовые к запуску сценарии PowerShell и построчно объясняют незнакомые командлеты.

Учебное пособие по Powershell для начинающих

Что такое PowerShell?

Windows PowerShell Это объектно-ориентированный механизм автоматизации и язык сценариев. Он предназначен для ИТ-специалистов и системных администраторов, которым необходимо контролировать и автоматизировать администрирование. Windows и других приложений. PowerShell расширяет концепции, изученные в Windows Командная строка и Windows Script Host с новыми объектами, командлетами и мощным конвейером обработки скриптов.

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

Почему стоит использовать PowerShell?

Наиболее важные причины для использования PowerShell:

  • Предлагает хорошо интегрированный интерфейс командной строки для операционной системы.
  • Обеспечивает полный доступ ко всем типам объектов в платформе .NET.
  • Пользуется доверием системных администраторов в масштабах крупных предприятий.
  • Позволяет управлять компонентами сервера и рабочей станции всего несколькими строками кода.
  • Предназначен для системных администраторов и имеет понятный синтаксис «глагол-существительное».
  • Безопаснее, чем бег VBScript или других устаревших скриптовых языков.

История PowerShell

PowerShell 1.0 был впервые выпущен в 2006 году. В настоящее время PowerShell находится в версии 7.2 и выше. С выходом новых версий его возможности и среды развертывания значительно расширялись.

История версий PowerShell:

  • PowerShell 1.0 — поддерживал местную администрацию Windows Сервер 2003.
  • PowerShell 2.0 — интегрирован с Windows 7 и Windows Сервер 2008 R2. Добавлены удаленный доступ, транзакции, фоновые задания, события и отладка.
  • PowerShell 3.0 — отправлено с Windows 8 и Windows Сервер 2012 как часть Windows Структура управления. Добавлены запланированные задания, возможность подключения к сессиям и автоматическая загрузка модулей.
  • PowerShell 4.0 — отправлено с Windows 8.1 и Windows Server 2012 R2. Добавлена ​​поддержка желаемой конфигурации состояния, улучшена отладка и диагностика сети.
  • PowerShell 5.0 - часть Windows Management Framework 5. Добавлена ​​удаленная отладка, определения классов и перечисления .NET.
  • PowerShell 7.2 — Создано на основе .NET 6.0. Добавляет новые операторы, динамические представления ошибок и автоматические уведомления о версиях.

Особенности PowerShell

  • Удаленное управление PowerShell: Вызов скриптов и командлетов на удалённой машине.
  • Вакансии для работы с фоновыми данными: Запускать скрипты или конвейеры асинхронно на локальном компьютере или на множестве удаленных машин.
  • Сделки: Это позволит командлетам и разработчикам выполнять групповые операции, которые можно будет зафиксировать или отменить одновременно.
  • Троеборье: Отслеживать, пересылать и реагировать на события управления и системы.
  • Передача файлов по сети: Встроенная поддержка приоритетной, асинхронной, контролируемой передачи файлов между машинами через службу интеллектуальной фоновой передачи (BITS).

Как запустить PowerShell

PowerShell предустановлен во всех последних версиях WindowsЗапустите его следующим образом.

Шаг 1) Найдите PowerShell в WindowsЗатем выберите и щелкните по нему.

Запустить PowerShell

Шаг 2) Откроется окно PowerShell.

Окно PowerShell

Командлет против команды

A командлет Командлеты (произносится как «командлет») — это легковесная команда, используемая в среде PowerShell. PowerShell вызывает командлеты в командной строке, и вы можете создавать свои собственные, используя API PowerShell. Командлеты отличаются от традиционных команд оболочки следующим образом:

  • Командлеты . NET Framework Объекты классов; их нельзя запустить как отдельные исполняемые файлы.
  • Командлеты можно написать всего лишь из десятка строк кода.
  • Анализ данных, форматирование вывода и отображение ошибок обрабатываются средой выполнения, а не самим командлетом.
  • Командлеты работают с объектами, поэтому как текстовые потоки, так и объекты могут проходить через конвейеры обработки данных.
  • Командлеты работают на основе записей и обрабатывают только один объект за раз.

Большая часть функциональности PowerShell реализуется с помощью командлетов, которые всегда используют схему именования «глагол-существительное» (всегда в единственном числе). Командлеты возвращают объекты, а не текст. скрипт — в отличие от командлета — это последовательность команд, хранящихся в текстовом файле. .ps1 расширение.

К числу распространенных глаголов, которые вы будете использовать при изучении PowerShell, относятся:

  • Получите — достать что-либо.
  • Начать — запустить что-нибудь.
  • Вне — вывести что-нибудь.
  • Stop — остановить что-либо работающее.
  • Поставьте — дать определение чему-либо.
  • Новое — создать что-нибудь.

Важные команды PowerShell

Получить помощь: Просмотрите справку по командам и темам PowerShell.

Пример: отобразить справку для Format-Table команда.

Get-Help Format-Table

Командлет Get-Help

Команда Get: Получить информацию обо всем, что может быть вызвано.

Пример: сгенерировать список командлетов и функций, установленных на компьютере.

Get-Command

Командлет Get-Command

Получить-Сервис: Находит все службы на машине.

Пример: получить все сервисы, имя которых начинается с «vm».

Get-Service "vm*"

Командлет Get-Service

Get-Member: показать, что можно сделать с объектом.

Пример: список участников служб виртуальных машин, возвращаемых командой Get-Service.

Get-Service "vm*" | Get-Member

Командлет Get-Member

Другие полезные командлеты:

  • Get-Module — показать установленные пакеты команд.
  • Get-Content — прочитать файл и обработать его содержимое.
  • Get-* Подстановочный знак — вывести список всех командлетов, начинающихся с «Get-».

Пример: создать папку.

New-Item -Path 'X:\Guru99' -ItemType Directory

Выход:

Вывод нового элемента

Типы данных PowerShell

PowerShell поддерживает стандартные типы данных .NET, поэтому вы можете корректно сохранять любое значение в переменной.

Типы данных PowerShell

Специальные переменные

PowerShell предоставляет ряд встроенных специальных переменных. Наиболее полезные из них перечислены ниже.

Специальная переменная Описание
$Ошибка Массив объектов ошибок, представляющих самые последние ошибки.
$Хост Отображает название текущего размещенного приложения.
$Профиль Сохраняет полный путь к профилю пользователя для оболочки по умолчанию.
$ PID Сохраняет идентификатор процесса.
$PSUICulture Содержит название текущей культуры пользовательского интерфейса.
$НУЛЬ Содержит пустое или нулевое значение.
$False Содержит логическое значение FALSE.
$Истина Содержит логическое значение TRUE.

Скрипты PowerShell

Сценарии PowerShell хранятся в .ps1 файлы. По умолчанию запуск скрипта двойным щелчком мыши невозможен — эта мера предосторожности защищает систему от случайного повреждения. Чтобы выполнить скрипт, щелкните по нему правой кнопкой мыши и выберите «Запустить с помощью PowerShell».

Запускаем с PowerShell

Политика выполнения определяет, каким скриптам разрешено запускаться. Текущую политику можно просмотреть с помощью команды: Get-ExecutionPolicyВозможные значения:

  • ограниченный — Использование скриптов запрещено. Это значение по умолчанию.
  • AllSigned — Запускаются только скрипты, подписанные доверенным разработчиком, и для каждого требуется подтверждение.
  • RemoteSigned — Запускаются ваши собственные скрипты, а также скрипты с подписями из надежных источников.
  • Неограниченный — Любой скрипт может быть запущен (используйте его с осторожностью).

Шаги для изменения политики исполнения:

Шаг 1) Откройте командную строку PowerShell с правами администратора, щелкнув правой кнопкой мыши по значку PowerShell и выбрав соответствующий пункт. Запуск от имени администратора.

Запустите PowerShell от имени администратора

Шаг 2) Выполните следующие действия.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. Enter Y в запросе подтверждения.
  4. Get-ExecutionPolicy

Изменить политику выполнения

Первый скрипт PowerShell

Откройте Блокнот и введите:

Write-Host "Hello, Guru99!"

Сохраните файл с .ps1 расширение — например, FirstScript.ps1.

Сохраните файл FirstScript.ps1

В PowerShell запустите скрипт следующим образом:

& "X:\FirstScript.ps1"

Запустите FirstScript.ps1

Что такое PowerShell ISE?

Windows Интегрированная среда сценариев PowerShell (ISE) ISE — это редактор по умолчанию для PowerShell. В ISE вы можете запускать команды, писать тесты и отлаживать скрипты в графической оконной среде. Он поддерживает многострочное редактирование, подсветку синтаксиса, автодополнение по клавише Tab, выборочное выполнение и многое другое.

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

PowerShell интегрированная среда сценариев сценариев

Воссоздайте ранее созданный скрипт в ISE:

  1. Вставьте код в редактор.
  2. Сохраните сценарий.
  3. Нажмите F5, чтобы запустить его.
  4. Обратите внимание на вывод в консоль.

Запустите скрипт в ISE

Образец 2: Следующий скрипт отображает бесплатно виртуальная память на автомате.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Бесплатный скрипт виртуальной памяти

PowerShell Concepts

Следующие понятия составляют словарь повседневной работы с PowerShell.

Концепция Описание
Командлеты Встроенные команды, написанные на языках .NET, таких как VB или C#. Разработчики расширяют этот набор, загружая или создавая оснастки PowerShell.
функции Команды, написанные непосредственно на языке PowerShell, без необходимости использования IDE, например... Visual Studio.
Сценарии Текстовые файлы на диске с .ps1 расширение.
Области применения Существующий Windows программы, запускаемые из командной оболочки.
Что, если Указывает командлету не выполнять команду, а описать, что произойдет, если она будет выполнена.
подтвердить Указывает командлету запросить подтверждение перед выполнением.
Подробный Обеспечивает более высокий уровень детализации оперативной информации.
Отлаживать Указывает командлету выводить отладочную информацию.
ОшибкаДействие Определяет, что делает командлет в случае ошибки. Допустимые значения: continue, stop, silentlycontinue, inquire.
ОшибкаПеременная Указывает имя переменной, которая хранит информацию об ошибке.
OutVariable Указывает командлету сохранять свой вывод в определённой переменной.
ВнеBuffer Удерживает определенное количество объектов перед отправкой их дальше по конвейеру.

Преимущества использования скриптов PowerShell

  • Скрипты PowerShell — мощные и лаконичные инструменты, позволяющие добиться многого всего несколькими строками кода.
  • Переменные объявляются с помощью $<variable> синтаксис.
  • Переменные могут содержать выходные данные команд, объекты и примитивные значения.
  • Тип переменной указывать явно не нужно.

PowerShell против командной строки

PowerShell Командная строка
Глубоко интегрирован с WindowsПредлагает интерактивную командную строку и полноценный язык сценариев. Интерфейс командной строки по умолчанию, предоставляемый MicrosoftПростое Win32-приложение, взаимодействующее с другими Win32-объектами.
Использует командлеты, которые можно вызывать в интерактивном режиме или с помощью сценариев автоматизации. Командлеты отсутствуют.
Обрабатывает выходные данные как объекты, чтобы они могли передаваться в другой командлет через конвейер. В результате выводится обычный текстовый поток, а не объекты.
Обладает расширенными функциями, возможностями и внутренней архитектурой. Базовая оболочка, подходящая для выполнения устаревших пакетных задач.

Применение PowerShell

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

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

Часто задаваемые вопросы (FAQ)

PowerShell автоматизирует Windows Администрирование системы — управление службами, файлами, пользователями и серверами — осуществляется с помощью объектно-ориентированного языка командной строки и сценариев, построенного на платформе .NET.

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

PowerShell работает с объектами и поддерживает командлеты, написание сценариев и глубокую интеграцию с .NET. Командная строка — это простая текстовая оболочка, команды которой выводят обычный текст, а не объекты.

Файл .ps1 — это скрипт PowerShell, текстовый файл, содержащий одну или несколько команд PowerShell. По умолчанию его нельзя запустить двойным щелчком мыши; он выполняется из консоли или с помощью команды «Запустить с помощью PowerShell».

Откройте PowerShell от имени администратора и выполните команду Set-ExecutionPolicy со значением, например, RemoteSigned или Unrestricted, затем подтвердите. Используйте команду Get-ExecutionPolicy, чтобы проверить текущую настройку.

Интегрированная среда написания сценариев (ISE) — это встроенный графический редактор PowerShell для написания, запуска, тестирования и отладки сценариев, с подсветкой синтаксиса, автодополнением и возможностью открытия нескольких вкладок со сценариями.

Искусственный интеллект-помощники предлагают командлеты, объясняют поведение скриптов и обнаруживают ошибки по мере ввода текста. Они помогают администраторам быстрее автоматизировать задачи и преобразовывать простые запросы в работающие команды PowerShell.

Да. Искусственный интеллект генерирует полные сценарии PowerShell на основе простого описания, например, «перечислить все остановленные службы и перезапустить их», и объясняет каждую команду, чтобы вы могли ознакомиться с ней перед запуском.

Подведем итог этой публикации следующим образом: