Учебное пособие по Powershell для начинающих: изучение сценариев Powershell
Что такое PowerShell?
Windows PowerShell — это объектно-ориентированный механизм автоматизации и язык сценариев. Он предназначен в основном для ИТ-специалистов и системных администраторов для контроля и автоматизации администрирования. Windows ОС и другие приложения. Он предоставляет убедительные новые концепции для расширения полученных вами знаний и сценариев, созданных вами в рамках Windows Командная строка и Windows Среды хоста сценариев.
Он сочетает в себе гибкость сценариев, скорость работы с командной строкой и мощь инструмента администрирования на основе графического пользовательского интерфейса. Это позволяет вам эффективно решать проблемы, помогая системному администратору исключить будущие часы ручного труда. Мы рассмотрим все важные аспекты, которые вам следует знать, чтобы изучить PowerShell.
Это полное руководство по основам написания сценариев Powershell… давайте начнем!
Зачем использовать Powershell?
Вот некоторые важные причины использования Powershell:
- Powershell предлагает хорошо интегрированный интерфейс командной строки для операционной системы.
- PowerShell обеспечивает полный доступ ко всем типам в .NET Framework.
- Доверено системным администраторам.
- PowerShell — это простой способ манипулировать компонентами сервера и рабочей станции.
- Он ориентирован на системных администраторов благодаря более простому синтаксису.
- PowerShell более безопасен, чем работа VBScript или другие языки сценариев
История PowerShell
Первая версия PowerShell 1.0 была выпущена в 2006 году. Сегодня PowerShell имеет версию 7.2. С течением года и версии возможности PowerShell и среды хостинга значительно выросли.
Давайте посмотрим историю версий Powershell:
- PowerShell версии 1 поддерживал локальное администрирование Windows сервер 2003
- PowerShell 2.0 был интегрирован с Windows 7 и Windows Сервер 2008Р2. Эта версия поддерживает удаленное взаимодействие и расширяет возможности PowerShell, такие как транзакции, фоновые задания, события, отладка и т. д.
- PowerShell 3.0 был выпущен как внутренняя часть Windows рамки управления. Он был установлен на Windows 8 и Windows Server 2012. Вы можете добавлять и планировать задания, подключение сеансов, автоматическую загрузку модулей и т. д.
- PowerShell 4.0 поставлялся с Windows 8.1 и Windows Сервер 2012Р2. В этой версии добавлена поддержка конфигурации желаемого состояния, расширенная отладка, диагностика сети.
- PowerShell 5.0 был выпущен как внутренняя часть Windows платформа управления 5. В этой версии предлагаются такие функции, как удаленная отладка, определения классов, перечисления .NET и т. д.
- Выпущена PowerShell 7.2. Он построен на .NET 6.0. Эта версия предлагает новые операторы, упрощенный и динамический просмотр ошибок, автоматические уведомления о новых версиях и т. д.
Далее в этом руководстве по написанию сценариев Powershell мы узнаем о функциях Powershell.
Особенности PowerShell
- Удаленное взаимодействие PowerShell: PowerShell позволяет запускать сценарии и командлеты на удаленном компьютере.
- Фоновые задания: помогает асинхронно вызывать скрипт или конвейер. Вы можете запускать свои задания либо на локальном компьютере, либо на нескольких удаленно управляемых компьютерах.
- Сделки: Включить командлет и позволить разработчикам выполнять
- Вечер: Эта команда помогает вам прослушивать, пересылать и реагировать на события управления и системы.
- Передача файлов по сети: Powershell предлагает встроенную поддержку приоритетной, асинхронной, регулируемой передачи файлов между компьютерами с использованием технологии фоновой интеллектуальной службы передачи (BITS).
Как запустить PowerShell
Теперь в этом руководстве по сценариям Powershell мы узнаем, как запустить Powershell на Windows OS.
PowerShell предустановлен во всех последних версиях Windows. Нам нужно запустить PowerShell, для этого нам нужно выполнить следующие шаги:
Шаг 1) Найдите PowerShell в Windows. Выберите и нажмите
Шаг 2) Откроется окно Power Shell
Командлет PowerShell
Командлет, который также называется Command let, — это облегченная команда, используемая в базовой среде PowerShell Windows. PowerShell вызывает эти командлеты в командной строке. Вы можете создавать и вызывать команды командлетов с помощью PowerShell APIS.
Командлет против команды
Командлеты отличаются от команд в других средах командной оболочки следующим образом:
- Командлеты . NET Framework объекты класса. Его нельзя выполнить отдельно.
- Командлеты могут состоять всего из дюжины строк кода.
- Синтаксический анализ, форматирование вывода и представление ошибок не обрабатываются командлетами.
- Процесс командлетов работает с объектами. Таким образом, текстовый поток и объекты не могут быть переданы в качестве вывода для конвейерной обработки.
- Командлеты основаны на записях, поэтому они обрабатывают один объект за раз.
Большая часть функций PowerShell исходит из командлета, который всегда имеет формат глагол-существительное, а не множественное число. Более того, командлет возвращает объекты, а не текст. Командлет — это серия команд, состоящая из нескольких строк, хранящихся в текстовом файле с расширением .ps1.
Командлет всегда состоит из глагола и существительного, разделенных дефисом. Некоторые из глаголов, которые помогут вам изучить PowerShell:
- Получите — Чтобы получить что-то
- Начните — Чтобы запустить что-то
- Вне — Выводить что-либо
- Stop — Остановить то, что работает
- Поставьте — Определить что-либо
- Новое — Создать что-то
команды PowerShell
Ниже приведен список важных команд PowerShell:
Получить помощь: Справка по командам и темам PowerShell
Пример. Отображение справочной информации о команде Format-Table.
Get-Help Format-Table
Команда Get: Получить информацию обо всем, что можно вызвать
Пример сценария Powershell: создание списка командлетов и функций, установленных на вашем компьютере.
Get-Command
Получить-Сервис: Находит все командлеты со словом «сервис».
Пример: получить все службы, начинающиеся с «vm».
Get-Service "vm*"
Получить члена: Покажите, что можно сделать с объектом
Пример: получение участников процессов виртуальной машины.
Get-Service "vm*" | Get-Member
Другие команды:
- Получить модуль. Показывает пакеты команд.
- Получить содержимое. Этот командлет может взять файл, обработать его содержимое и что-то с ним сделать.
- Get- get Находит все командлеты, начинающиеся со слова get-.
Пример: создать папку
New-Item -Path 'X:\Guru99' -ItemType Directory
Вывод:
Типы данных Powershell
Специальные переменные
Специальная переменная | Описание |
---|---|
$Ошибка | Массив объектов ошибок, отображающих самые последние ошибки. |
$Хост | Отобразить имя текущего хост-приложения |
$Профиль | Сохраняет весь путь к профилю пользователя для оболочки по умолчанию. |
$ PID | Сохраняет идентификатор процесса |
$PSUICulture | Он содержит название текущей культуры пользовательского интерфейса. |
$НУЛЬ | Содержит пустое значение или значение NULL. |
$False | Содержит значение ЛОЖЬ |
$Истина | Содержит значение ИСТИНА |
Скрипты PowerShell
Скрипты Powershell хранятся в файле .ps1. По умолчанию вы не можете запустить сценарий, просто дважды щелкнув файл. Это защитит вашу систему от случайного повреждения. Чтобы выполнить скрипт:
Шаг 1: щелкните его правой кнопкой мыши и выберите «Запустить с помощью PowerShell».
Более того, существует политика, ограничивающая выполнение скриптов. Эту политику можно просмотреть, выполнив команду Get-ExecutionPolicy.
Вы получите один из следующих результатов:
- ограниченный— Никакие сценарии не допускаются. Это настройка по умолчанию, поэтому она будет отображаться при первом запуске команды.
- AllSigned— Вы можете запускать скрипты, подписанные проверенным разработчиком. С помощью этой настройки скрипт будет запрашивать подтверждение того, что вы хотите его запустить, перед выполнением.
- RemoteSigned— Вы можете запускать свои или скрипты, подписанные проверенным разработчиком.
- Неограниченный— Вы можете запустить любой скрипт, который захотите
Действия по изменению политики выполнения
Шаг 1) Откройте приглашение PowerShell с повышенными правами. Щелкните правой кнопкой мыши PowerShell и выберите «Запуск от имени администратора».
Шаг 2) Введите следующие команды
- Get-ExecutionPolicy
- Политика Set-executionpolicy неограничена
- Введите Y в командной строке
- Get-ExecutionPolicy
Первый скрипт PowerShell
В блокноте напишите следующую команду
Write-Host "Hello, Guru99!"
Скрипты PowerShell имеют расширение ps1. Сохраните файл как FirstScript.ps1.
В Powershell вызовите скрипт с помощью команды
& "X:\FirstScript.ps1"
Что такое PowerShell ISE?
Территория Windows Интегрированная среда сценариев PowerShell (ISE) — это редактор по умолчанию для Windows PowerShell. В этой ISE вы можете запускать команды, тестировать запись и отлаживать сценарии в среде графического пользовательского интерфейса на основе окна. Вы можете выполнять многострочное редактирование, раскрашивание синтаксиса, завершение табуляции, выборочное выполнение и многое другое.
Windows PowerShell ISE также позволяет вам запускать команды в панели консоли. Однако он также поддерживает панели, которые вы можете использовать для одновременного просмотра исходного кода вашего скрипта и других инструментов, которые вы можете подключить к ISE.
Вы даже можете открыть несколько окон сценариев одновременно. Это особенно полезно при отладке сценария, который использует функции, определенные в других сценариях или модулях.
Тот же скрипт, который мы создали в блокноте, можно создать в ISE.
- Вставьте код в редактор
- Сохранить сценарий
- Используйте F5 для запуска скрипта
- Наблюдайте за выводом в консоли
Образец 2:
Следующий код предоставит Free Виртуальная память в твоей машине
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
PowerShell Concepts
Теперь в этом уроке Powershell для начинающих мы узнаем о важных концепциях Powershell:
Командлеты | Командлет — это команда сборки, написанная на языках .net, таких как VB или C#. Это позволяет разработчикам расширять набор командлетов, загружая и записывая оснастки PowerShell. |
функции | Функции — это команды, написанные на языке PowerShell. Его можно разработать без использования других IDE, таких как Visual Studio и разработчики. |
Сценарии | Скрипты представляют собой текстовые файлы на диске с расширением .ps1. |
Приложения | Приложения — это существующие программы Windows. |
Что если | Приказывает командлету не выполняться, а сообщает вам, что произойдет, если командлет запустится. |
подтвердить | Укажите командлету, что перед выполнением команды будет выдаваться запрос. |
Подробный | Обеспечивает более высокий уровень детализации. |
Отлаживать | Указывает командлету предоставить отладочную информацию. |
ОшибкаДействие | Указывает командлету выполнить определенное действие при возникновении ошибки. Разрешенные действия продолжать, стоп, молча-продолжать и спрашивать. |
ОшибкаПеременная | Он указывает переменную, содержащую информацию об ошибке. |
OutVariable | Сообщает командлету использовать определенную переменную для хранения выходной информации. |
ВнеBuffer | Указывает командлету хранить определенное количество объектов перед вызовом следующего командлета в конвейере. |
Преимущества использования скрипта PowerShell
- Скрипты PowerShell действительно мощны и могут сделать многое за меньшее количество строк.
- Переменные объявляются в виде $
- Переменные можно использовать для хранения вывода команды, объектов и значений.
- «Тип» переменной указывать не нужно.
PowerShell против. Командная строка
PowerShell | Командная строка |
---|---|
PowerShell глубоко интегрируется с Windows ОПЕРАЦИОННЫЕ СИСТЕМЫ. Он предлагает интерактивный интерфейс командной строки и язык сценариев. | Командная строка — это интерфейс командной строки по умолчанию, предоставляемый Microsoft. Это простое Win32-приложение, которое может взаимодействовать и общаться с любыми Win32-объектами в Windows операционная система. |
PowerShell использует так называемые командлеты. Его можно вызвать либо в среде выполнения, либо в сценариях автоматизации. | Никакие такие функции не доступны в командной строке. |
PowerShell рассматривает их как объекты. Таким образом, выходные данные можно передать в качестве входных данных другим командлетам через конвейер. | В командной строке или даже оболочке *nix выходные данные, генерируемые командлетом, представляют собой не просто поток текста, а набор объектов. |
PowerShell очень продвинут в плане функций, возможностей и внутреннего функционирования. | Командная строка очень проста. |
Приложения Powershell
Сегодня PowerShell стал идеальным выбором для ИТ-администраторов, поскольку он упрощает управление и работу в крупных корпоративных сетях. Например, предположим, что вы управляете большой сетью, содержащей более четырехсот серверов. Теперь вы хотите внедрить новое решение безопасности. Это решение безопасности зависит от определенной службы, которую необходимо запустить на этих серверах.
Вы можете наверняка войти на каждый сервер и посмотреть, установлена и запущена ли на них эта служба или нет. Однако это, безусловно, требует большого количества человеческих ошибок, поскольку вашим сотрудникам приходится тратить много времени на этот непродуктивный процесс.
Однако если вы используете PowerShell, вы сможете выполнить эту задачу всего за несколько минут. Это связано с тем, что вся операция выполняется с помощью одного сценария, который собирает информацию о службах, работающих на серверах.
Резюме
- Windows PowerShell — объектно-ориентированный механизм автоматизации и язык сценариев.
- Powershell предлагает хорошо интегрированный интерфейс командной строки для операционной системы.
- Первая версия PowerShell 1.0 была выпущена в 2006 году.
- PowerShell позволяет запускать сценарии и командлеты на удаленном компьютере.
- PowerShell предустановлен во всех последних версиях Windows
- Командлет — это упрощенная команда, используемая в базовой среде PowerShell Windows.
- Get, Start, Out, Stop, Set, New — важные команды PowerShell.
- Boolean, Byte, Chat, Decimal, Decimal, Long — важные типы данных PowerShell.
- $Ошибка. $Host, $Profile, $PID, $PSUICulture, $NULL — это специальные переменные, используемые в PowerShell.
- Территория Windows PowerShell Integrated Scripting Environment (ISE) — редактор PowerShell по умолчанию.
- PowerShell глубоко интегрируется с Windows ОС, тогда как командная строка — это интерфейс командной строки по умолчанию, предоставляемый Microsoft
- PowerShell стал идеальным выбором для ИТ-администраторов, поскольку он упрощает управление и усилия в крупных корпоративных сетях.