Поиск по сайту:

Лучший справочник по PowerShell


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

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

В этом справочном листе вы найдете все операторы, советы по работе с переменными, операторы управления потоком (if-else, циклы и т. д.), а также коллекции и хеш-таблицы. Я также добавил новые тернарные операторы PowerShell 7 и оператор нулевого объединения.

Скачать шпаргалку по PowerShell

Чтобы получить свою копию шпаргалки, просто заполните форму ниже, и вы получите PDF-версию, которую сможете распечатать на почте.

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

Хорошо знать

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

Чтобы сделать это еще проще, я рекомендую добавить следующую команду в ваш профиль PowerShell. Таким образом, вам нужно будет только дважды нажать Tab, чтобы просмотреть все возможные параметры.

Set-PSReadlineKeyHandler -Key Tab -Function Complete

Также командлет Get-History лучше, чем нажатие клавиши стрелки вверх, чтобы найти команду, которую вы использовали несколько минут назад. Обязательно попробуйте это.

Операторы

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

$a += 5 or $a -= 5

Добавить и присвоить или вычесть и присвоить

$a *= 2 or $a /= 2

Умножить и присвоить или Разделить и присвоить

2 -eq $a or 2 -ne $a

Больше или равно (переменная с правой стороны)

$a -gt 2 or $a -lt 2

Больше чем или меньше чем

2 -ge $a

Меньше или равно (переменная с правой стороны)

2 -le $a

Меньше или равно (переменная с правой стороны)

Операторы PowerShell

Я написал полную статью о операторах PowerShell, обязательно ознакомьтесь с ней, если хотите узнать больше.

Переменные и объекты

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

КомандаОписание
$a = "Привет"Присвоить значение переменной
$a, $b = "Привет","Пока"Множественное присвоение переменных
диапазон=1..10Создайте массив с последовательностью
$_Получить текущий объект конвейера
$nullНулевое значение
[тип]$переменнаяОбъявленная типизированная (int, string) переменная
$глобальный:varНазначить переменную в глобальной области видимости
Переменные и объекты PowerShell

Управляющие конструкции

Управляющие операторы позволяют контролировать, что ваш скрипт должен делать дальше, основываясь на определённых условиях. Самый известный управляющий оператор — это, конечно, оператор if-else.

Также циклы For и ForEach часто используются и хорошо известны. Но менее известны новые тернарный оператор и операторы объединения с нулевым значением, которые доступны в PowerShell 7.

ЗаявлениеОписание
если ($условие) { } иначе { }Простое условное выражение If-Else
($x -gt 10) ? "Высокий" : "Низкий"Трехмерный оператор для if-else (PS7)
переключатель ($var) { }Переключатель
для ($i=0; $i < 10; $i++) { }Стандартный цикл for
для каждого ($item в $collection) {}Цикл для итерации по коллекциям
пока ($условие) { }Цикл while с условием
$result=$value ?? "По умолчанию"Присваивает значение по умолчанию, если значение равно нулю (PS7)
$value ??= ЗначениеПоУмолчаниюНазначает, если null (PS7)
$result=$ {object}?.СвойствоПолучить доступ к свойству, если объект существует (PS7)
$элемент=$ {массив}?[индекс]Получить доступ к элементу, если массив существует(PS7)
Управляющие конструкции

Коллекции и хэш-таблицы

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

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

КомандаОписание
$array=@('элемент1', 'элемент2', 'элемент3')Создать массив со значением
$массив[индекс]Доступ к элементу массива
$array.ДлинаПолучить длину массива
$array.Добавить(item)Добавить элемент в массив
$array.Удалить(item)Удалить элемент из массива
$hash=@{ key1='value1'; key2='value2'; }Создайте хеш-таблицу
$hash.key1Ключ доступа хэша
$hash.key2='новое значение'Присвоить значение хэш-ключу
$hash.Add('key3', 'value')Добавьте пару ключ-значение
$hash.Удалить('key2')Удалить пару ключ-значение
$obj=[PSCustomObject]@{ Prop1='Val1'; Prop2='Val2' }Пользовательский объект
Коллекции PowerShell и хэш-таблицы

Ввод/Вывод

PowerShell также отлично подходит для экспорта данных из систем (например, Microsoft 365) и генерации отчетов. Основные cmdlet, которые вам нужно знать для этого, перечислены в таблице. Но если вы хотите узнать больше, то обязательно ознакомьтесь с модулем PowerShell для Excel.

КомандаОписание
$var=Чтение-ХостЧитать ввод пользователя
Получить-СодержимоеЧитать содержимое файла
Импортировать-CSVИмпорт из CSV файла
Экспорт-CSVЭкспорт в файл CSV
Write-Host "Привет"Написать в консоль
Напечатать-Хост "$ ($obj.test)"Записать в консоль с помощью свойства объекта
$var | Out-GridViewВывод в интерактивное сетчатое представление
Ввод/Вывод

Запуск скриптов и обработка

Запуск скрипта PowerShell не так уж сложно. Но знаете ли вы, как запустить скрипт в текущем контексте? Или как фоновую задачу? Большинство не используют эти методы ежедневно, но они могут оказаться очень полезными, поэтому я перечислил их в шпаргалке для вашего удобства.

КомандаОписание
Запустить-Процесс блокнотЗапустите внешний процесс или приложение
Запустить-НитьРаботы -СкриптБлок {
Получить-Процесс }
Запустите скрипт или задачу в фоновом режиме
. .\script.ps1Запустите сценарий в текущем контексте (используя точечный источник)
& .\script.ps1Запустите скрипт в новой области (оператор вызова)
Запуск скриптов и обработка

Трубопровод и форматирование

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

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

КомандаОписание
Получить-Процесс | Сортировать-Объект -Свойство ИмяСортировать процессы по имени
Получить-ЭлементыДетей *.txt | Где-Объект {$_.Длина -gt 1КБ}Фильтровать текстовые файлы больше 1KB
Получить-Процесс | Выбрать-Объект -Свойство Имя, ID, ЦПУВыберите имя процесса, идентификатор и использование ЦП
Получить-Процесс | ДляКаждого-Объекта {$_.ИмяПроцесса}Обработайте каждый элемент в цепочке поставок
Get-ChildItem | Format-List -Property Name, LengthОтобразить имя файла и длину в списке
Получить-Процесс | Формат-таблица -Свойство ID, CPU -АвтоРазмерОтображать процессы в таблице с автоматически подстраиваемыми столбцами
Трубопровод и форматирование

Завершение

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

Если у вас есть какие-либо вопросы или вы знаете команду, которая действительно должна быть в таблице, просто оставьте комментарий ниже.