PowerShell Scripts — Ultimate Guide to get Started

Проблемы

PowerShell Editor

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

Для PowerShell Visual Studio Code — один из лучших бесплатных редакторов для начала. Этот редактор от Microsoft совершенно бесплатен и может использоваться в Windows, Linux и macOS. Чтобы использовать редактор с PowerShell, вам необходимо установить плагин (расширение).

  1. Сначала установите Visual Studio Code с помощью установщика. Просто нажмите «Далее» на всех экранах.
  2. Нажмите «Расширения
  3. Найдите PowerShell
  4. Установите расширение PowerShell от Microsoft

Код Visual Studio редактора PowerShell
Редактор PowerShell — код Visual Studio

Чтобы создать наш первый скрипт PowerShell, нам нужно создать новый файл. Чтобы сохранить порядок, мы создадим новую папку «скрипты», в которой будем хранить наши файлы. В коде Visual Studio:

  1. открыть проводник
  2. Выберите Открыть папку
  3. Создайте новую папку «Скрипты», например, в OneDrive
  4. Нажмите «Выбрать папку

Если вы доверяете файлам в этой папке, вы получите сообщение. Обязательно установите флажок «Доверять авторам всех файлов в родительской папке» и нажмите «Да, я доверяю авторам.

Создать новый проект

Чтобы создать новый файл, щелкните правой кнопкой мыши в редакторе (или щелкните значок «Новый файл») и создайте свой первый сценарий PowerShell. Конечно, вы также можете создать подпапку, чтобы систематизировать ваши сценарии.

Создать новый скрипт PowerShell

How to run PowerShell scripts

Сценарий PowerShell (файл *.ps1) можно запустить в консоли PowerShell, которая распознает расширение файла *.ps1 и выполняет команды последовательно. Вы можете открыть сценарий как файл в редакторах кода, таких как PowerShell ISE и Visual Studio Code, и запустить весь сценарий на панели консоли или запустить только его часть.

How to enable PowerShell scripts by changing the execution policy

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

Политика выполнения по умолчанию для Windows 11 ограничена. В операционных системах, отличных от Windows, политика выполнения по умолчанию — «Неограниченная», и ее нельзя изменить.

Чтобы просмотреть текущую политику выполнения, используйте команду PowerShell Get-ExecutionPolicy.

Вы можете изменить политику выполнения в Windows, используя следующую команду:

Set-ExecutionPolicy -ExecutionPolicy

Различные рекомендации по выполнению будут обсуждаться в следующей теме.

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

В Windows вы можете установить политику выполнения для локального компьютера, текущего пользователя или процесса PowerShell.

Чтобы просмотреть все доступные области, используйте Get-ExecutionPolicy -List.

Get-ExecutionPolicy -List

Порядок важен, поэтому элемент с наивысшей конфигурацией имеет приоритет. Например, если вы установили политику выполнения с помощью групповой политики, она будет иметь приоритет над другими.

Элемент с наивысшей конфигурацией имеет приоритет
Элемент с наивысшей конфигурацией имеет приоритет

Политика Описание
Ограниченное Политика выполнения по умолчанию для клиентских ОС Windows. Он не позволяет выполнять ЛЮБЫЕ скрипты (файлы *.ps1). Однако вы можете запускать отдельные команды.
Удаленно подписано Политика выполнения Windows Server по умолчанию. Это позволяет запускать сценарии, созданные локально. Скрипты, загруженные из ненадежных мест, таких как Интернет, электронная почта, мессенджеры и т д., должны быть подписаны цифровой подписью доверенного издателя. Вы можете использовать команду Unblock-File, чтобы разрешить запуск сценария в системе.
Безлимитный Политика выполнения по умолчанию для компьютеров, отличных от Windows, и ее нельзя изменить. Он разрешает запуск неподписанных сценариев, но отображает предупреждение и запрашивает подтверждение, если сценарии получены из ненадежного места.
Все подписано Для этого требуется, чтобы все сценарии, запущенные на компьютере, были подписаны цифровой подписью доверенного издателя, независимо от того, созданы ли они локально на компьютере или загружены из Интернета.
Обход Он позволяет запускать все сценарии, например Unrestricted, но подтверждение не требуется.
Неопределенный Для указанной области не установлена ​​политика выполнения. Если все области установлены как неопределенные, используются политики выполнения по умолчанию.

Различные политики выполнения PowerShell. Чтобы разрешить PowerShell запускать сценарии, используйте Set-ExecutionPolicy -ExecutionPolicy

команда.Set-ExecutionPolicy -ExecutionPolicy

По умолчанию эта команда применяет выбранную политику к области локального компьютера. Чтобы указать другую область, используйте параметр -Scope и укажите имя области.

Например, следующая команда устанавливает политику выполнения «Неограниченно» для текущего пользователя:

Set-ExecutionPolicy -ExecutionPolicy Unlimited -Scope CurrentUser

Running a script with PowerShell

Чтобы открыть консоль PowerShell, нажмите кнопку «Пуск» (или кнопку «Поиск»), введите powershell и нажмите «Запуск от имени администратора.

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

Чтобы запустить скрипт в консоли PowerShell, вы можете:

  • Используйте полный путь к сценарию, например: C:TEMPMyNotepadScript.ps1
  • Или просто используйте имя сценария из папки, в которой находится файл: .MyNotepadScript.ps1

Running a PowerShell script in Visual Studio Code

Чтобы запустить сценарий в Visual Studio Code, необходимо сначала запустить программу и открыть созданный ранее файл сценария (C:TEMPMyVSCodeScript.ps1).

  • Выберите «Файл» > «Открыть файл» или используйте сочетание клавиш Ctrl + O.

  • Загрузив скрипт в VS Code, вы можете выполнить его, нажав кнопку «Выполнить» в правом верхнем углу или нажав F5 на клавиатуре.

Скрипт будет выполнен на панели консоли, где вы увидите выходные данные сценария.

Скрипт запускается в панели консоли
Скрипт запускается в панели консоли

Другой вариант — запустить только часть скрипта (выбор «Выполнить»). Это часто бывает полезно, когда вы создаете сценарий и хотите убедиться, что его части ведут себя должным образом.

  • Чтобы запустить выбранный скрипт, выделите раздел, который хотите запустить.
  • Нажмите «Выполнить выбор» в правом верхнем углу консоли или нажмите F8 на клавиатуре.

На этот раз VS Code будет запускать только выбранные строки кода на панели консоли.

Как запустить только часть скрипта с помощью выбора «Выполнить
Как запустить только часть скрипта

Читайте также: Как сделать нижнюю панель прозрачной в Windows 7

Running a script in the PowerShell ISE

запуск сценариев в PowerShell ISE очень похож.

  • Запустите PowerShell ISE.
  • откройте скрипт из предыдущей демонстрации (в данном случае — C:TEMPMyPowerShellISEScript.ps1), используя «Файл» > «Открыть», или значок «Открыть» на панели инструментов, или сочетание клавиш Ctrl + O.
  • Выберите файл сценария и нажмите «Открыть.

Чтобы выполнить весь скрипт, используйте кнопку «Выполнить» на панели инструментов или нажмите F5 на клавиатуре. Это запустит файл сценария на панели консоли и вернет результат.

Запустите сценарий в PowerShell ISE
Запустите сценарий в PowerShell ISE

Если вам нужно выполнить только часть сценария, выделите ее и выберите «Выполнить выбор» на панели инструментов или нажмите F8 на клавиатуре. Опять же, PowerShell ISE будет запускать только выбранные строки кода.

Вы также можете запускать только части скрипта
Вы также можете запускать только части скрипта

Running a PowerShell script from the Command Prompt

Если файлы *.ps1 интерпретируются PowerShell, командная строка (CMD) не может работать напрямую со сценариями PowerShell. Чтобы запустить сценарий PowerShell в CMD, запустите его, вызвав процесс PowerShell с параметром -File, как показано ниже:

PowerShell – файл C:TEMPMyNotepadScript.ps1.

Conclusion

Скрипты PowerShell — отличный способ автоматизировать повторяющиеся задачи. Следуйте общему правилу: «Если вам нужно сделать что-то более одного раза, запишите это», и вы не ошибетесь!

Running a PowerShell Script

Прежде чем мы начнем писать сценарий PowerShell, полезно знать, как запускать или тестировать ваши сценарии. Одной из частых проблем при попытке запуска вашего скрипта является ошибка «Выполнение скрипта отключено в этой системе». Чтобы решить эту проблему, нам нужно изменить разрешение на выполнение на вашем компьютере с Windows 10 или 11.

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

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned # Подтвердите настройку с помощью Get-ExecutionPolicy

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

  • Использование встроенного терминала в Visual Studio Code
  • Запустите скрипт в PowerShell

Using Visual Studio Code

Одним из преимуществ использования Visual Studio Code в качестве редактора сценариев PowerShell является то, что вы можете тестировать и запускать свои сценарии во встроенном терминале. Вы можете запустить весь скрипт, нажав F5, или запустить выбранные строки, нажав F8.

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

Using PowerShell

Другой метод — использовать сам PowerShell для запуска сценария. Откройте Windows PowerShell или Windows Terminal (щелкните правой кнопкой мыши «Пуск») и перейдите к папке, в которой хранится ваш скрипт. Введите имя файла скрипта и нажмите Enter.

Терминал Windows
Использование терминала Windows

The Basics

Using Cmdlets in PowerShell

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

Подсказка
Команды командной строки

В PowerShell у нас есть командлеты (командлеты). Командлет можно узнать, назвав его, поскольку он состоит из пары глагол-существительное. Это соглашение об именах помогает вам понять, что делает конкретный командлет.

Примечание

В некоторых примерах ниже я использую командлеты из модуля Active Directory. Убедитесь, что у вас установлен модуль, если вы хотите следовать инструкциям. Запустите следующую команду, чтобы установить модуль:
Add-WindowsCapability –online –Name «Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”

Например, командлет Get-Computername получает имя компьютера (так же, как имя хоста в командной строке). А чтобы отобразить содержимое папки, мы можем использовать, например, Get-ChildItem.

Силовая оболочка
Командлеты PowerShell

Помимо встроенных командлетов, в PowerShell также можно устанавливать модули. Эти модули можно использовать, например, для работы с Exchange Online или Azure AD. Каждый модуль поставляется со своими командлетами для своей конкретной задачи.

PowerShell Verbs

Существует множество допустимых глаголов, которые вы можете использовать при создании собственных команд или функций PowerShell. Но наиболее распространенные глаголы, с которыми вы сталкиваетесь, это:

Добавлять Добавляет или добавляет ресурсы в другой элемент Добавить-MailboxPermission
Прозрачный Удаляет все ресурсы из контейнера, но не
удалить контейнер
Очистить-Хост
Соединять Подключается к другой системе Connect-AzureAD
Отключить Отключиться от другой системы Disconnect-AzureAD
Немного Получает данные из ресурса Get-ChildItem
Новый Создает новый ресурс Новый почтовый ящик
Удалять Удаление ресурса из контейнера Удаленный почтовый ящик
Набор Заменяет данные в существующем ресурсе Установить почтовый ящик
Выбирать Выбирает ресурс в контейнере Выберите объект

Глаголы PowerShell

Variables

При написании сценариев вам часто придется временно хранить данные, чтобы их можно было использовать в сценарии позже. Для этого мы используем переменные. В PowerShell нам не нужно инициализировать переменные, мы можем просто создавать их при необходимости. Переменные могут хранить не только данные, такие как строки и целые числа, но и весь вывод командлетов.

Начнем с простого примера: мы возьмем предыдущий командлет Get-Computer. Командлет возвращает имя компьютера:

Примечание

Содержимое после # в сценарии PowerShell является комментарием. Комментарии используются для объяснения того, что делает функция, и для того, чтобы сделать ваш код более читабельным.

Get-Computer#Result LT3452

Мы не хотим просто отображать имя компьютера, а хотим включить имя компьютера в красивую строку. В этом случае мы можем сначала сохранить результат выполнения командлета Get-Computername в переменной, которую назовем имя_компьютера. И включите эту переменную в строку:

# Сохраняем имя компьютера в переменной $computername = Get-Computername # Включаем переменную в строку Write-Host «Имя вашего компьютера — $computername» # Результат Имя вашего компьютера — LT3452

Comparison Operators and If-Else Conditions

В PowerShell мы можем использовать операторы сравнения для сравнения или поиска совпадающих значений. По умолчанию операторы чувствительны к регистру, но вы можете установить темп ac перед оператором, чтобы сделать его чувствительным к регистру. Например:

‘lazyadmin’ -eq ‘LazyAdmin’ # Результат True ‘lazyadmin’ -ceq ‘LazyAdmin’ # Результат False

Операторы, которые мы можем использовать в PowerShell:

-экв -нет Нравится это или не нравится
-gt -lt Больше или меньше
— давать Больше или равно
-смех Меньше или равно
-Как -Не нравится Сопоставить строку с подстановочным знаком * или нет
-Соответствовать -Не соответствует Соответствует или не соответствует указанному регулярному выражению
— Содержит — Не содержит Коллекция содержит указанное значение или нет
-Не в Указанное значение в коллекции или нет
-Заменять Заменить указанное значение

Операторы PowerShell

Мы можем использовать эти операторы в сочетании, например, с операторами If-Else. Оператор if позволяет нам проверить, истинно ли конкретное сравнение или нет. В зависимости от результата мы можем запустить часть кода или перейти к другой части.

Давайте снова возьмем пример с именем компьютера. Мы сохранили имя компьютера внутри переменной. Теперь проверим, соответствует ли имя компьютера моему ноутбуку:

$computername = Get-Computername # Проверьте, равно ли имя компьютера LT3452 if ($computername -eq ‘LT3452’) { Write-Host «Этот компьютер от LazyAdmin» }else{ Write-host «Это чужой компьютер»

}

Имена наших компьютеров начинаются с LT для ноутбуков и PC для настольных компьютеров. Таким образом, мы можем узнать, является ли устройство ноутбуком или нет, по имени компьютера. Для этого мы будем использовать оператор if с оператором -like. Подобный оператор принимает подстановочный знак, поэтому, например, в этом случае мы можем проверить, начинается ли строка с «LT

$computername = Get-Computername # Проверьте, начинается ли имя компьютера с LT if ($computername -like ‘LT*’) { Write-Host «Это ноутбук» }else{ Write-host «Это что-то еще»

}

Passing true results with Pipelining

Помимо переменных, существует еще один способ передачи данных другому командлету PowerShell, использующий оператор конвейера | . Оператор конвейера передает результаты команды следующей команде. Наиболее распространенным примером конвейерной обработки является форматирование или выбор результата командлета.

Давайте рассмотрим следующий пример: командлет Get-NetIPAddress возвращает конфигурацию IP-адресов всех ваших сетевых интерфейсов. По умолчанию он возвращает результаты в формате списка

Get-NetIPAddress
Труба PowerShell

Чтобы сделать результаты более читабельными, мы можем отформатировать их на планшете или выбрать только те свойства, которые нам нужны. Мы делаем это, помещая за ним таблицу формата командлета (ft) или объект выбора командлета (select):

Get-NetIPAddress | FT# Или выберите поля Get-NetIPAddress | Выберите InterfaceAlias, IPAddress, PrefixOrigin
Конвейерная обработка PowerShell

Теперь это простой пример командлетов канала. Но давайте взглянем на более продвинутое использование командлетов канала. Соберем все почтовые ящики пользователей, из каждого ящика посмотрим статистику почтового ящика, выберем только нужные нам поля и экспортируем результаты в CSV-файл. Без оператора канала нам придется написать код, подобный этому:

Примечание

Командлет Get-EXOMailbox является частью модуля Exchange Online. Убедитесь, что он у вас установлен, если вы хотите выполнить следующие шаги.

$mailboxes = Get-EXOMMailbox -RecipientTypeDetails UserMailbox $mailboxes.ForEach({ $Mailboxstats = Get-EXOMMailboxStatistics -Identity $_.Identity $fields = Select-Object -InputObject $Mailboxstats -Property DisplayName,ItemInize ExportOject-CSVS поля — Путь c: tempfile.csv -Добавить

})

Но с помощью каналов в PowerShell мы можем просто сделать следующее:

Get-EXOMMailbox -RecipientTypeDetails UserMailbox | Get-EXOMMailboxStatistics | Выберите DisplayName, ItemCount, TotalItemSize | Экспортировать CSV c:tempfilename.csv

Storing data in Arrays and Hashtables

Массивы и хеш-таблицы можно использовать для хранения набора данных. Хэш-таблицы используют принцип «ключ-значение», при котором вам необходимо определить ключ, прежде чем вы сможете сохранить значение. Массивы используют автоматически сгенерированный индекс для хранения значений.

Чтобы создать массив, мы можем просто присвоить переменной несколько значений, разделив каждое из них общим. Например:

# Создаем массив фруктов $array = ‘apple’, ‘raspberry’, ‘kiwi’

Другой вариант — сначала инициализировать массив, а потом добавлять в него значения. Чтобы создать пустой массив, мы используем символ @, за которым следуют круглые скобки :

# Создаем пустой массив $fruits = @() # Добавляем содержимое в массив $fruits += «apple»

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

# Создаем пустую хеш-таблицу $hashTable = @{}

Например, вы можете использовать хеш-таблицу для хранения IP-адресов сервера

$serverIps= @{ ‘la-srv-lab02’ = ‘192.168.10.2’ ‘la-srv-db01’ = ‘192.168.10.100’ } # Имя результата Значение —— la-srv-lab02 192.168.10.2 ла -srv-db01 192.168.10.100

Или как файл конфигурации в вашем скрипте:

$mail = @{ SmtpServer = ‘smtp.contoso.com’ To = ’email protected’ From = ’email protected’ Тема = ‘сверхдлинная тема здесь’ Тело = ‘Тестовое письмо от PowerShell’ Приоритет = высокий

}

Looping through data with Foreach and Do-While

циклическое перебор данных — одна из распространенных задач любого языка сценариев. Циклы ForEach позволяют вам перебирать каждый элемент коллекции и что-то с ним делать. Например, берем массив фруктов и записываем каждый элемент (фрукт) в консоль:

$fruits = @(‘apple’,’pear’,’banana’,’lemon’,’lime’,’mango’) # Foreach block Foreach ($fruit in $fruits) { Write-Host $fruit; } # Сокращение $fruits.foreach({ Write-Host $_;

})

В приведенном выше примере мы использовали простой массив, но вы также можете использовать ForEach для объектов. Внутри блока ForEach вы можете получить доступ к каждому свойству объекта, например, если мы получим все почтовые ящики, мы сможем получить доступ к отображаемому имени следующим образом:

$mailboxes = Get-EXOMailbox -RecipientTypeDetails UserMailbox $mailboxes.ForEach({ # Запишите отображаемое имя каждого почтового ящика Write-host $_.DisplayName

})

Помимо циклов ForEach, мы также можем использовать циклы While и Do-While. Цикл while будет выполняться только при выполнении условия, цикл Do-While всегда выполняется один раз и до тех пор, пока условие истинно.

# Do While цикл Do { Write-Host «Online» Start-Sleep 5 } While (Test-Connection -ComputerName 8.8.8.8 -Quiet -Count 1) Write-Host «Offline» # While цикл $i = 0; $path = «C:temp» While ($i -lt 10) { # Сделайте что-нибудь $newFile = «$path while_test_file_» + $i + «.txt»; Новый элемент $newFile $i++;

}

Catch errors with Try-Catch

Блоки Try-Catch используются для правильной обработки ошибок. Обычно, когда функция не работает или выдает ошибку, скрипт просто останавливается и выдает ошибку. Иногда это нормально, но в других случаях вам может потребоваться отобразить более читаемую ошибку или просто продолжить.

Например, при обновлении нескольких пользователей в Active Directory с помощью цикла ForEach. Если одна из учетных записей пользователей не существует, сценарий выдаст ошибку и остановится. Но лучшим решением было бы, если бы выходные данные сценария представляли собой имена пользователей, которых он не обновлял, и просто продолжали работу со следующим. Здесь на помощь приходят блоки Try-Catch.

В приведенном выше примере следующий блок кода попытается найти и обновить пользователя Azure AD. Если в блоке Try произойдет ошибка, раздел Catch вернет ошибку.

$users.ForEach{ Try{ # Найдите пользователя для обновления $ADUser = Get-AzureAdUser -SearchString $_.name # Обновите название должности Set-AzureAdUser -ObjectId $ADUser.ObjectId -JobTitle $_.jobtitle } Catch{ Write- Vert («Не удалось обновить» + $($_.name)) — цвет переднего плана красный

}

}

Это базовая реализация блока try-catch. Можно даже использовать несколько блоков catch в одном операторе Try, чтобы вы могли ловить разные ошибки. Подробнее о блоках Try-Catch читайте в этой подробной статье.

How to create PowerShell scripts

Существует несколько способов создания сценариев PowerShell:

  • С помощью кроссплатформенного редактора кода Visual Studio Code
  • С PowerShell ISE
  • Или любой другой текстовый редактор, например. Блокнот

Creating PowerShell scripts with Visual Studio Code

Код Visual Studio не доступен сразу в Windows, поэтому его необходимо загрузить со специального веб-сайта Visual Studio. В нашем случае нам необходимо скачать дистрибутив Windows, который доступен для 64-битных, 32-битных и ARM-систем.

Вот различные шаги, которые необходимо выполнить после установки приложения. Сначала откройте Visual Studio Code из меню «Пуск.

откройте код Visual Studio из меню «Пуск» Windows 11
откройте код Visual Studio из меню «Пуск» Windows 11

Install the PowerShell extension

откройте меню расширения, щелкнув значок расширения, показанный на рисунке ниже, или воспользуйтесь сочетанием клавиш Ctrl+Shift+X.

откройте меню расширений на левой боковой панели
откройте меню расширений на левой боковой панели

Введите powershell в поле поиска, выберите наиболее загружаемый вариант, как показано ниже, и убедитесь, что вы загружаете расширение, предоставленное Microsoft. Затем нажмите «Установить.

Найдите подходящее расширение и установите его
Найдите расширение PowerShell

После завершения установки вы не увидите никакого подтверждения. Однако вы увидите, что кнопка «Установить» была заменена опциями «Отключить» и «Удалить.

Параметры отключения и удаления появляются после установки расширения
Параметры отключения и удаления появляются после установки расширения

How to create a PowerShell script with Visual Studio Code

Чтобы создать новый сценарий PowerShell, выберите «Файл» > «Новый файл» или используйте сочетание клавиш Ctrl + N.

Создать новый скрипт
Создайте новый скрипт PowerShell

Чтобы указать, что новый файл является сценарием PowerShell, нажмите «Обычный текст» в левом нижнем углу или выберите язык на панели сценариев. Оба варианта отправят вас в окно «Выбрать языковой режим». Введите powershell и выберите PowerShell.

Укажите, что новый файл является скриптом
Укажите, что новый файл является сценарием PowerShell

Это активирует расширение PowerShell, и вы увидите изменение в поведении и функциональности. Во-первых, вы заметите, что значок рядом с именем файла изменится на PowerShell. Вы также заметите, что откроется консоль PowerShell, и здесь вы сможете выполнять команды и сценарии PowerShell.

Запускает консоль PowerShell
Запускает консоль PowerShell

Того же результата можно добиться, сохранив файл с расширением *.ps1.

Введите следующие команды на панели сценариев, и вы оцените такие преимущества, как цветовое кодирование, автозаполнение команд и подсказки по синтаксису в действии:

Write-host «Это скрипт Visual Studio Code» Write-host «Написание сценариев PowerShell — это весело!»

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

Примечание. Третья строка предназначена только для демонстрационных целей и показывает возможность завершения команды.

Чтобы сохранить файл, вы можете использовать меню Файл: Файл > Сохранить. Вы также можете использовать сочетание клавиш Ctrl + S.

Затем используйте легкодоступное расположение, введите имя файла, обязательно укажите *.ps1 в качестве расширения файла и нажмите «Сохранить». В этом примере я сохраняю файл в C:TEMPMyVSCodeScript.ps1.

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

Выполнение скриптов в VS Code будет рассмотрено далее в этой статье.

Creating scripts with the Windows PowerShell ISE

Чтобы запустить PowerShell ISE, нажмите кнопку «Пуск» (или кнопку «Поиск») и начните вводить PowerShell ISE. Вы увидите приложение в результатах поиска с разными вариантами открытия. Всегда рекомендуется использовать «Запуск от имени администратора», чтобы гарантировать, что все команды выполняются правильно и не блокируются.

Вы должны запустить PowerShell ISE от имени администратора
Вы должны запустить PowerShell ISE от имени администратора

Итак, давайте создадим скрипт в PowerShell ISE. Введите следующие строки, и вы снова сможете заметить полезные функции, такие как цветовое кодирование, автозаполнение команд, подсказки по синтаксису и т д.:

Write-Host «Это сценарий PowerShell ISE» Write-Host «Написание сценариев PowerShell — это весело!»При создании скрипта вы можете увидеть цветовую маркировку, автодополнение команд, подсказки по синтаксису и т.д.
Создание скрипта в PowerShell ISE

Примечание. Третья строка предназначена только для демонстрационных целей и показывает возможность завершения команды.

Теперь сохраним список команд как скрипт PowerShell. Для этого щелкните значок дискеты на панели инструментов, затем выберите «Файл» > «Сохранить» в меню «Файл». Вы также можете использовать сочетание клавиш Ctrl + S.

В диалоговом окне «Сохранить как» выберите папку, введите имя файла, укажите расширение файла *.ps1 и нажмите «Сохранить». В этом примере я даю следующее имя: C:TEMPMyPowerShellISEScript.ps1.

Сохраняет ваш сценарий PowerShell
Сохраняет ваш сценарий PowerShell

Creating scripts with NotePad

Использование базового текстового редактора для написания сценариев PowerShell не рекомендуется, но это возможно. Давайте возьмем пример с Блокнотом

  • откройте Блокнот и введите следующие команды:

Написание хоста «Это скрипт для блокнота» Написание хоста «Написание сценариев PowerShell — это весело!Вы можете писать сценарии в Блокноте
Вы можете писать сценарии PowerShell в Блокноте

  • Чтобы сохранить сценарий, выберите «Файл» > «Сохранить.
  • В диалоговом окне «Сохранить как» выберите папку и введите имя файла с расширением *.ps1. В этом примере я использую: C:TEMPMyNotepadScript.ps1.

Командлеты

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

  • существуют системные, пользовательские и дополнительные командлеты;
  • результатом выполнения командлета будет объект или массив объектов;
  • командлеты могут обрабатывать данные и передавать их другим командлетам с помощью конвейеров;
  • командлеты не чувствительны к регистру, поэтому нет никакой разницы между Get-ADUser, get-aduser и gEt-AdUsEr;
  • символ используется как разделитель ; .

Каждый командлет содержит глагол и существительное, разделенные дефисом. Например:

  • Get-Process — показать текущие процессы, запущенные на компьютере;
  • Get-Service — отображение списка сервисов и их статуса;
  • Get-Content — отображает содержимое указанного файла, например Get-Content C:WindowsSystem32driversetchosts.

При необходимости вы можете просмотреть все доступные командлеты с помощью Get-Help-Category. Запомните эту команду — она чрезвычайно важна для тех, кто изучает PowerShell с нуля, так как помогает быстро начать ориентироваться в ее функциях.

На данный момент этот блок не поддерживается, но мы об этом не забыли! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

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

Параметры

Каждый командлет имеет несколько параметров, определяющих его работу. PowerShell ISE автоматически предлагает все доступные параметры и отображает их тип. Например, Get-Service-NameW* возвращает список служб, имена которых начинаются с W. Если вы забыли, какие параметры имеет введенный вами командлет, используйте Get-Member.

Например, Get-Process | Получить участника:

На данный момент этот блок не поддерживается, но мы об этом не забыли! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Если вы не можете найти то, что вам нужно, или не знаете, как правильно задать параметры, вы даже можете запросить примеры, используя параметр -Examples. Встроенный учебник PowerShell покажет вам, для чего используются различные параметры:

На данный момент этот блок не поддерживается, но мы об этом не забыли! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Некоторые командлеты также можно вызывать с использованием псевдонимов. Например, вместо Get-Help вы можете просто ввести Help — эта команда также откроет встроенное руководство по PowerShell.

При написании больших скриптов или командной разработке вы можете использовать комментарии. Каждый комментарий начинается с символа #, а блок комментариев ограничивается комбинациями символов <# и #> в начале и конце соответственно.

Оцените статью
Блог про Samsung