Вы когда-нибудь пытались написать код на PowerShell и застревали? Больше не беспокойтесь! Один из лучших способов стать мастером PowerShell – это понять основы. Знание нескольких основных команд PowerShell может сделать вас профессионалом, и вы будете автоматизировать административные задачи более эффективно.
В этом руководстве вы узнаете основные командлеты PowerShell, которые вам нужно знать, чтобы сделать ваш опыт работы с PowerShell более интересным.
Предварительные требования
Этот учебник будет демонстрацией на практике, но у него нет многих предварительных требований. Если вы хотите следовать за нами, любая система (Windows или Linux) с PowerShell 5.1 или выше подойдет. Хотя команды показаны с использованием Windows PowerShell, приведенные ниже примеры работают в PowerShell 7+ на разных платформах.
Получение справочной информации о командах с помощью Get-Help
Вы когда-нибудь писали код как босс без получения помощи? Хотя бы всегда было нужно какое-то руководство при написании кода. Будь то выполнение кода или команд в среде командной строки, пригодится командлет Get-Help
.
Давайте начнем это руководство с изучения того, как работает командлет Get-Help
.
Команда Get-Help
предоставляет вам необходимые руководства для эффективного использования любой команды без ошибок. Рассматривайте это как документацию для каждой из команд PowerShell.
Откройте PowerShell от имени администратора и выполните нижеприведенную команду Get-Help
, чтобы просмотреть подробную (-Detailed
) информацию о команде, например, о команде Get-ExecutionPolicy
.

Вместо простой подробной информации возможно, вам захочется просмотреть полную информацию о команде. В таком случае добавьте параметр -Full
в команду Get-Help
.
Выполните приведенный ниже код, чтобы получить полную (-Full
) информацию о самой команде Get-Help
.

Возможно, вам все еще нужны дополнительные примеры, чтобы избежать ошибок при выполнении команды. В этом случае добавьте параметр -Examples
, чтобы увидеть примеры написания команды.
Выполните команду Get-Help
ниже, чтобы получить примеры (-Examples
) использования команды Get-Process
.

Получение процессов компьютера с помощью Get-Process
Помните ли вы Диспетчер задач Windows, который отображает все ваши процессы, службы, приложения и все такое? Замечательно! Командлет Get-Process
является базовым, но важным командлетом, который дает вам доступ ко всем процессам вашего компьютера всего в нескольких шагах без открытия Диспетчера задач.
Выполните следующую команду, чтобы получить список всех процессов системы в формате таблицы.

Когда процесс зависает и замедляет работу вашего компьютера, остановите процесс, направив вывод командлета
Get-Process
на командлетStop-Process
. Например: выполнитеGet-Process -Id 1252 | Stop-Process
, где-Id 1252
указывает идентификатор процесса, который вы хотите остановить.
Получение истории сеанса PowerShell с помощью Get-History
Может возникнуть необходимость проверить ваши последние команды, например, убедиться, что последняя выполненная команда правильна, или вы действительно выполнили команду. Но есть ли у PowerShell история команд? Да! Команда Get-History
возвращает объект всех ваших последних команд в текущей сессии PowerShell.
Запустите команду ниже, чтобы получить список всех недавно выполненных команд в текущей сессии.

Если вы предпочитаете просматривать конкретные команды из истории, добавьте параметр
-Id
, за которым следует номер ID команды из истории. Например, выполнитеGet-History -Id 2
, чтобы увидеть вторую команду в истории.
Отображение системных служб с помощью Get-Service
Как и команда Get-Process
, PowerShell также позволяет просматривать все службы, работающие в вашей системе. Команда Get-Service
позволяет просматривать все службы, которые могут быть сервером базы данных или приложением, автоматически управляющим яркостью экрана вашего компьютера.
Запустите команду ниже, чтобы получить список всех служб на вашей системе в формате таблицы. С помощью этой команды вы сможете видеть даже остановленные службы.

Возможно, вам нужны службы, которые начинаются с определенного символа. Если это так, добавление символа подстановки (*) сделает дело.
Запустите команду Get-Service
ниже, передав первую букву и звездочку (A*
) служб, которые вы хотите просмотреть. Добавление символа подстановки позволяет фильтровать все службы, которые не начинаются с буквы ‘A’.

Запуск фоновых заданий с помощью Start-Job
Написание кодов может быть раздражающим, если еще многое нужно написать, а одна команда занимает вечность. Нет проблем! PowerShell предоставляет командлет для запуска фоновых заданий в вашей сессии. Командлет Start-Job
предоставляет среду PowerShell для запуска кода или команд в качестве фоновой задачи без взаимодействия с пользователем.
Запустите команду Start-Job
ниже, чтобы запустить фоновую задачу для командлета Get-Command
. Запуск фоновой задачи выполняет командлет Get-Command
, не отображая вывод на вашей командной строке.

Поскольку вы работаете с фоновыми заданиями, как проверить, выполняется ли задание или завершено? Запустите командлет
Get-Job
, чтобы получить все задания в вашей сессии.
Изменение рабочих каталогов с помощью Set-Location
Иногда вам нужно изменить каталоги, например, при запуске сценария или программы из определенного места. Но как изменить каталоги? Позвольте командлету Set-Location
помочь вам с этим. Командлет Set-Location
устанавливает текущий рабочий каталог в указанный вами каталог в команде.
Запустите код ниже, чтобы установить текущий рабочий каталог в C:\Users\hp\Desktop. Замените hp
на имя пользователя вашего компьютера.
Ниже вы можете видеть в приглашении, что C:\Users\hp\Desktop теперь является рабочим каталогом.

Проверка существования путей с помощью Test-Path
PowerShell может отображать ошибку, если вы пытаетесь получить доступ к файлу, которого не существует. Как этого избежать? Командлет Test-Path
позволяет вам проверить, существует ли путь или нет, с его интуитивным синтаксисом.
Теперь создайте папку на рабочем столе, назовите ее NewFolder.
Запустите команду Test-Path
ниже, за которой следует путь, который вы хотите протестировать. В этом примере команда проверяет, существует ли путь C:\Users\hp\Desktop\NewFolder.
Ниже вы можете видеть, что команда вернула значение True, поскольку путь существует. В противном случае вы получите ложный вывод.

Преобразование объекта PowerShell в HTML с помощью ConvertTo-HTML
Если вы предпочитаете организованную форму для ваших данных, конвертируйте их в HTML с помощью cmdlet ConvertTo-Html
. Фундаментально, команда принимает файл вывода, который вы хотите конвертировать, и имя файла, под которым вы хотите его сохранить.
Запустите команду ниже, чтобы собрать список всех команд PowerShell (Get-Command
) в памяти и конвертировать (ConvertTo-Html
) список в файл HTML с именем Command.html
.
Файл HTML сохраняется на вашем рабочем столе, поскольку вы ранее изменили рабочий каталог. Чтобы сохранить файл HTML в другом месте, укажите полный путь. Например:
Get-Command | ConvertTo-HTML > C:\Temp\Commands.html
Экспорт объектов PowerShell в CSV с помощью Export-CSV
Если вы думаете, что отчет в формате CSV будет лучше, чем в HTML, тогда используйте командлет Export-CSV
. Аналогично командлету ConvertTo-Html
, командлет Export-CSV
позволяет вам экспортировать данные в файл CSV.
Выполните команду ниже, чтобы собрать список команд PowerShell (Get-Command
), и экспортировать список в файл CSV (Export-CSV
) с именем Commands.csv
.
Как и в командлете ConvertTo-Html, вы также можете указать путь экспорта для файла CSV так:
Get-Command | Export-CSV C:\Temp\Commands.csv
Откройте файл Commands.csv, и вы увидите что-то вроде того, что ниже. Неплохо, правда?

Просмотр всех доступных команд PowerShell с помощью Get-Command
Последняя команда PowerShell в списке – это командлет Get-Command
. Командлет Get-Command
в основном выводит все доступные команды PowerShell, которые вы можете выполнить, в табличном формате. Но, как вы видели на предыдущих примерах, это не все, что Get-Command
может делать.
Возможно, вы хотите выбирать cmdlet или псевдонимы выборочно. Если это так, добавьте параметр -CommandType
к cmdlet Get-Command
, чтобы фильтровать вывод по указанному вами типу команды. Значение параметра -CommandType
может быть Alias
, Cmdlet
или Function
.
Запустите команду Get-Command
ниже, чтобы перечислить только cmdlet (-CommandType Cmdlet
) с именами, начинающимися с ‘G’ (-Name G*
).

Другой способ фильтрации вывода Get-Command
– передача его в cmdlet Select-Object
. Как вы знаете, объект, возвращаемый cmdlet Get-Command
, представлен в формате таблицы. В этой таблице имена столбцов представляют свойства, которые вы можете выбрать из объекта.
Запустите Get-Command
ниже, чтобы собрать список всех команд PowerShell и отфильтровать отображение, чтобы показать свойство определения каждой команды (Select-Object -Property Definition
).

Заключение
Этот учебник дал вам подробное руководство по выполнению основных команд PowerShell. К настоящему моменту вы должны знать, как обширно использовать каналы и выполнять команды, избегая затруднений при кодировании в любое время.
Теперь, как вы бы расширили этот новый опыт? Возможно, научитесь писать многострочные команды в сценариях PowerShell, не портя при этом все?
Source:
https://adamtheautomator.com/basic-powershell-commands/