PowerShell справочник
Търсим, удобен за печат справочник за PowerShell — cmdlet-и, конвейерът, променливи, файлове, цикли, функции, обекти и администриране. Безплатно.
Помощ и откриване
12Get-Help Get-Process
Показва помощ за cmdlet
Get-Help Get-Process -Examples
Показва примери за употреба на cmdlet
Get-Help Get-Process -Full
Показва пълната помощ, вкл. параметри
Get-Help about_Functions
Чете концептуална about_ тема
Update-Help
Изтегля най-новите файлове с помощ
Get-Command -Noun Process
Извежда cmdlet-ите, действащи върху съществително
Get-Command -Verb Get
Извежда cmdlet-ите, използващи даден глагол
Get-Command *service*
Търси команди по име с маска
Get-Process | Get-Member
Извежда свойствата и методите на обекти
Get-Alias ls
Показва към коя команда води псевдоним
Get-Alias -Definition Get-ChildItem
Извежда всички псевдоними за cmdlet
$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 }
Създава hashtable
$hash['Name']; $hash.Name
Чете стойност от hashtable по ключ
$env:PATH
Чете променлива на средата
$env:MY_VAR = 'value'
Задава променлива на средата за сесията
Get-Variable
Извежда всички дефинирани променливи
[math]::Round(3.14159, 2)
Извиква статичен .NET метод
Пайплайн и филтриране
12Get-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
Изпраща резултатите в интерактивна решетка
Файлове и пътища
13Get-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
Връща броя на знаците
Цикли и условия
12if ($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
Излиза или пропуска текущата итерация на цикъла
Функции и скриптове
12function 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 { }
Обработва прекъсващи грешки
Обекти и свойства
12Get-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 файл в обекти
Процеси и услуги
12Get-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
Чете последните записи от класически event log
Get-WinEvent -LogName Application -MaxEvents 20
Заявява модерни event log-ове
Отдалечена работа и задачи
12Enter-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 }
Изпълнява леки задачи в нишки в процеса
Модули и пакети
12Get-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“.
Нуждаете се от помощ?
Открихте проблем с този инструмент? Кажете ни.