Все инструменты
Бесплатно

Доступный для поиска и печати справочник по PowerShell — командлеты, конвейер, переменные, файлы, циклы, функции, объекты и администрирование. Бесплатно.

Справка и поиск команд

12
Get-Help Get-Process
Показать справку по командлету
Get-Help Get-Process -Examples
Показать примеры использования командлета
Get-Help Get-Process -Full
Показать полную справку, включая параметры
Get-Help about_Functions
Прочитать концептуальную тему about_
Update-Help
Скачать последние файлы справки
Get-Command -Noun Process
Список командлетов, работающих с существительным
Get-Command -Verb Get
Список командлетов с заданным глаголом
Get-Command *service*
Искать команды по имени с подстановкой
Get-Process | Get-Member
Показать свойства и методы объектов
Get-Alias ls
Показать, в какую команду разворачивается псевдоним
Get-Alias -Definition Get-ChildItem
Показать все псевдонимы командлета
$PSVersionTable
Показать версию и редакцию PowerShell

Переменные и типы

13
$x = 5
Присвоить значение переменной
[int]$n = '42'
Объявить строго типизированную переменную
$null
Значение null / пустое
$true; $false
Логические литералы
$arr = @(1, 2, 3)
Создать массив
$arr += 4
Добавить элемент в массив
$arr[0]; $arr[-1]
Обратиться к первому и последнему элементам массива
$hash = @{ Name = 'Ann'; Age = 30 }
Создать хеш-таблицу
$hash['Name']; $hash.Name
Прочитать значение хеш-таблицы по ключу
$env:PATH
Прочитать переменную окружения
$env:MY_VAR = 'value'
Задать переменную окружения для сессии
Get-Variable
Показать все определённые переменные
[math]::Round(3.14159, 2)
Вызвать статический метод .NET

Конвейер и фильтрация

12
Get-Process | Where-Object { $_.CPU -gt 10 }
Фильтровать объекты по условию
Get-Process | ? CPU -gt 10
Фильтровать псевдонимом ? и упрощённым синтаксисом
Get-Process | ForEach-Object { $_.Name }
Выполнить блок скрипта для каждого объекта
Get-Process | % { $_.Kill() }
Перебрать псевдонимом %
Get-Process | Select-Object Name, Id
Оставить только определённые свойства
Get-Process | Select-Object -First 5
Взять первые N объектов
Get-Process | Sort-Object CPU -Descending
Отсортировать объекты по свойству
Get-Process | Group-Object Company
Сгруппировать объекты по свойству
Get-Process | Measure-Object CPU -Sum
Агрегировать числа (сумма, среднее)
Get-ChildItem | Select-Object -Unique
Вернуть уникальные объекты
1..5 | ForEach-Object { $_ * 2 }
Пропустить диапазон через преобразование
Get-Process | Out-GridView
Отправить результаты в интерактивную таблицу

Файлы и пути

13
Get-ChildItem -Path C:\Logs
Показать содержимое каталога (псевдоним ls/dir)
Get-ChildItem -Recurse -Filter *.log
Рекурсивно показать подходящие файлы
Get-Content .\file.txt
Читать файл построчно
Get-Content .\file.txt -Tail 20
Прочитать последние N строк файла
Set-Content .\file.txt -Value 'Hi'
Записать (перезаписать) текст в файл
Add-Content .\file.txt -Value 'Hi'
Дописать текст в файл
Copy-Item a.txt b.txt
Скопировать файл или каталог
Move-Item a.txt .\dir\
Переместить или переименовать элемент
Remove-Item a.txt -Force
Удалить файл или каталог
New-Item -ItemType Directory -Path .\dir
Создать файл или каталог
Test-Path .\file.txt
Проверить существование пути
Get-Location
Показать текущий каталог (псевдоним pwd)
Set-Location C:\Temp
Сменить текущий каталог (псевдоним cd)

Строки и текст

12
'Hello World' -match 'World'
Проверить строку по регулярному выражению
'Hello' -replace 'l', 'L'
Заменить текст по регулярному выражению
'a,b,c' -split ','
Разбить строку в массив по регулярке
'a-b-c'.Split('-')
Разбить методом .NET String
'a', 'b' -join ', '
Соединить элементы массива в строку
Select-String -Path *.log -Pattern 'error'
Поиск по файлам в стиле grep
'{0} of {1}' -f 3, 10
Форматировать строку с подстановками
' hi '.Trim()
Убрать пробелы в начале и конце
'Hello'.ToUpper()
Перевести строку в верхний регистр
'Hello'.Substring(0, 3)
Извлечь подстроку по индексу и длине
'Hello'.Contains('ell')
Проверить, содержит ли строка текст
'Hello'.Length
Получить число символов

Циклы и условия

12
if ($x -gt 0) { 'pos' } elseif ($x -eq 0) { 'zero' } else { 'neg' }
Ветвление if / elseif / else
switch ($x) { 1 { 'one' } default { 'other' } }
Сопоставить значение с вариантами
foreach ($i in $arr) { $i }
Перебрать коллекцию
for ($i = 0; $i -lt 5; $i++) { $i }
Счётный цикл с индексом
while ($x -lt 10) { $x++ }
Цикл, пока условие истинно
do { $x++ } while ($x -lt 10)
Цикл с проверкой после первого прохода
$x -eq 5; $x -ne 5
Сравнения на равенство и неравенство
$x -gt 5; $x -lt 5
Сравнения «больше» и «меньше»
$x -ge 5; $x -le 5
Сравнения «больше/меньше или равно»
'abc' -like 'a*'
Сравнение с подстановочным шаблоном
@(1, 2, 3) -contains 2
Проверить принадлежность массиву
break; continue
Выйти или пропустить итерацию цикла

Функции и скрипты

12
function Get-Sum { param($a, $b) $a + $b }
Определить функцию с параметрами
Get-Sum -a 2 -b 3
Вызвать функцию с именованными аргументами
function Test { param([int]$n = 1) }
Типизированный параметр со значением по умолчанию
param([Parameter(Mandatory)]$Name)
Сделать параметр обязательным
return $value
Вернуть значение из функции
function F { [CmdletBinding()] param() }
Создать продвинутую функцию (общие параметры)
Write-Verbose 'msg' -Verbose
Выводить поток подробных сообщений
Write-Output $result
Отправить объект в конвейер
Write-Error 'failed'
Писать в поток ошибок
.\script.ps1 -Arg value
Запустить файл скрипта с аргументами
. .\functions.ps1
Подключить скрипт в сессию через dot-source
try { } catch { $_ } finally { }
Обработать критические ошибки

Объекты и свойства

12
Get-Process | Select-Object -ExpandProperty Name
Вернуть сырые значения свойств, а не объекты
(Get-Process).Name
Обратиться к свойству каждого объекта
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { $_.WS / 1MB } }
Добавить вычисляемое свойство
[PSCustomObject]@{ Name = 'Ann'; Age = 30 }
Создать пользовательский объект
$obj | Add-Member -NotePropertyName Tag -NotePropertyValue 'x'
Добавить свойство к объекту
$obj.PSObject.Properties.Name
Показать имена свойств объекта
$obj | Format-Table -AutoSize
Показать объекты выровненной таблицей
$obj | Format-List *
Показать все свойства списком
$obj | ConvertTo-Json -Depth 5
Сериализовать объект в JSON
Get-Content data.json | ConvertFrom-Json
Разобрать JSON в объекты
$obj | Export-Csv out.csv -NoTypeInformation
Экспортировать объекты в CSV-файл
Import-Csv data.csv
Прочитать CSV-файл в объекты

Процессы и службы

12
Get-Process
Показать запущенные процессы (псевдоним ps)
Get-Process -Name chrome
Получить процессы по имени
Stop-Process -Name notepad -Force
Завершить процесс
Start-Process notepad.exe
Запустить новый процесс
Get-Service
Показать службы Windows
Get-Service -Name wuauserv
Получить службу по имени
Start-Service -Name wuauserv
Запустить остановленную службу
Stop-Service -Name wuauserv
Остановить работающую службу
Restart-Service -Name wuauserv
Перезапустить службу
Set-Service -Name wuauserv -StartupType Manual
Изменить режим запуска службы
Get-EventLog -LogName System -Newest 20
Прочитать недавние записи классического журнала событий
Get-WinEvent -LogName Application -MaxEvents 20
Запросить современные журналы событий

Удалённое выполнение и задания

12
Enter-PSSession -ComputerName Srv01
Начать интерактивную удалённую сессию
Exit-PSSession
Выйти из интерактивной удалённой сессии
Invoke-Command -ComputerName Srv01 -ScriptBlock { Get-Service }
Выполнить команду на удалённом хосте
$s = New-PSSession -ComputerName Srv01
Создать постоянную удалённую сессию
Invoke-Command -Session $s -ScriptBlock { hostname }
Переиспользовать существующую удалённую сессию
Remove-PSSession $s
Закрыть и удалить удалённую сессию
Start-Job -ScriptBlock { Get-Process }
Запустить команду как фоновое задание
Get-Job
Показать фоновые задания и их состояние
Receive-Job -Id 1 -Keep
Получить вывод задания
Wait-Job -Id 1
Ждать завершения задания
Stop-Job -Id 1; Remove-Job -Id 1
Остановить и удалить фоновое задание
Get-Process | Start-ThreadJob { $input }
Запускать лёгкие потоковые задания в процессе

Модули и пакеты

12
Get-Module
Показать загруженные модули
Get-Module -ListAvailable
Показать все установленные модули
Import-Module Pester
Загрузить модуль в сессию
Remove-Module Pester
Выгрузить модуль из сессии
Find-Module -Name PSReadLine
Искать модуль в галерее
Install-Module PSReadLine -Scope CurrentUser
Установить модуль из галереи
Update-Module PSReadLine
Обновить установленный модуль
Uninstall-Module PSReadLine
Удалить установленный модуль
Get-ExecutionPolicy
Показать текущую политику выполнения скриптов
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Разрешить запуск подписанных и локальных скриптов
Get-PSRepository
Показать настроенные репозитории пакетов
$PROFILE
Путь к скрипту профиля текущего пользователя

Нет записей, соответствующих «:q».


Поделиться
Нужна помощь?
Возникла проблема с этим инструментом? Сообщите нам.
Сообщить о проблеме

Добавьте этот бесплатный инструмент на свой сайт — скопируйте и вставьте код ниже.