Что такое сценарии Windows PowerShell?

Ключевые выводы

  • PowerShell — это язык сценариев, который помогает автоматизировать компьютерные задачи.
  • Командлеты — это однофункциональные команды Powershell. Вы можете просмотреть доступные команды с помощью Get-Command.
  • PowerShell доступен в Windows, macOS и Linux.

PowerShell — это язык сценариев, который поможет вам просто и надежно автоматизировать компьютерные задачи. Узнайте, как использовать его, чтобы начать создавать сценарии для вашего ПК с Windows.

Обзор сценариев PowerShell

Чтобы начать создавать простые сценарии PowerShell в Windows, вам нужно знать три вещи:

  • Командлеты: команды с одной функцией.
  • Параметры: укажите, что, когда, где и как использовать командлеты/команды.
  • Конвейер: принимает выходные данные вашего командлета и его параметры и соединяет их с другими командлетами и функциями.

Объединив все три, вы можете создавать простые сценарии, помогающие автоматизировать задачи.

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

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

 Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
  | Place-Object Bowl

Подробности о командлетах

Как и любой язык сценариев, PowerShell поставляется с предварительно встроенными командами для управления объектами и выполнения различных задач. Эти фундаментальные команды PowerShell известны как командлеты.

  Изменение цвета панели задач, меню «Пуск» и границ Windows в Windows 10

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

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

 Get-Command 

Если вы просмотрите результаты, вы заметите, что они соответствуют соглашению об именовании глаголов и существительных. Это облегчает понимание того, что делает тот или иной командлет.

Например, Get-Command предоставляет список команд, доступных в PowerShell. Get-Process отображает активные в данный момент процессы, а Copy-Item копирует один или несколько файлов в определенный каталог.

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

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

 Get-Help <name-of-cmdlet> 

Объяснение параметров PowerShell

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

Например, Get-Process получит список всех активных процессов в вашей операционной системе:

Но что, если вы хотите получить только конкретный процесс? Вы можете сделать это, используя параметры. Например, чтобы получить все процессы Slack, вы можете использовать параметр Name с командлетом Get-Process:

 Get-Process -Name Slack 

После этого вы увидите только те процессы с именем «slack»:

  Как изменить размер значка панели задач в зависимости от размера экрана в Windows 10

Некоторые параметры являются «позиционными», что означает, что их имя не является обязательным. В этом случае Get-Process -Name Slack и Get-Process Slack делают то же самое.

Каждый командлет принимает разные типы параметров. Используйте команду Get-Help, чтобы просмотреть принятые параметры командлета в разделе СИНТАКСИС.

 Get-Help Get-Process 

Вы увидите список всех возможных способов запуска данного командлета:

В этом случае командлет Get-Process принимает такие параметры, как имя, идентификатор, имя компьютера, модуль, FileVersionInfo и другие общие параметры. Символы здесь означают:

Символ

Имя

Значение

Пустой

Параметр не принимает входные данные

Дефис

Указывает имя параметра

<>

Угловые скобки

Заполнитель для текста

[]

Кронштейны

Параметр, который может принимать одно или несколько значений

{}

Брекеты

Параметр принимает набор значений

Параметры, которые принимают входные данные, будут указывать тип требуемых данных, например строку, целое число, логическое значение или DateTime. Например, это:

 Get-Process [[-Name] <string[]>] 

Означает, что параметр Name принимает одно или несколько строковых значений, а это:

 Get-Process -Id <int[]> 

Означает, что параметр Id принимает одно или несколько целочисленных значений.

В более раннем примере Get-Process использовался параметр Name, чтобы сузить результаты. Однако, если вы хотите сузить его до еще более конкретного процесса, вы можете использовать параметр ID, для которого требуется целое число, как указано в его синтаксисе.

 Get-Process -Id 3016 

После этого вы должны увидеть в списке только один процесс:

  Что такое журнал событий Windows? - Вводное руководство

Создание конвейера

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

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

Чтобы сделать это в PowerShell, используйте конвейер, который выглядит примерно так:

 Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
 | Select-Object -First 5 | Format-Table Name, Length -AutoSize

Сохранение конвейера как сценария PS1

Теперь, когда у нас есть работающий конвейер, вы можете сохранить его как файл сценария PS1, чтобы вам не приходилось вводить его каждый раз, когда вы его используете.

Самый простой способ создать файл PS1 — вставить сценарий в Блокнот и сохранить файл с расширением .ps1.

Создав файл PS1, вы можете использовать его в PowerShell, запустив ./ScriptName.ps1:

Поздравляем! Теперь вы можете создавать сценарии PowerShell PS1.

PowerShell также доступен в Linux и macOS.

PowerShell — один из лучших языков сценариев для начинающих, который каждый может изучить. Хотя раньше PowerShell был ограничен только Windows, обновленная версия PowerShell теперь также доступна в macOS и многих дистрибутивах Linux! Это делает PowerShell еще более привлекательным, поскольку вы можете перенести свои знания из Windows в другие операционные системы.