PowerShell
Офіційна документація Microsoft описує PowerShell як product documentation для встановлення, використання, прикладів scripts, deployment, PowerShell Gallery і module reference.Where-Object фільтрує об’єкти. виступає як дві важливі лінії:
У класичному shell команди часто передають текст.
Скорочено:
Receive-Job $job
Get-Help
Це корисно для quick diagnostics, reports і audit scripts.
Get-Command *Service* $items = @("one", "two", "three")
PowerShell і Windows PowerShell
Get-ChildItem
Write-Verbose "Generating report for $UserName"
- strings;
- numbers;
- arrays;
- hashtables;
- objects;
- script blocks;
- credentials;
- command results. Це критично в scripts, CI/CD і документації. * Windows PowerShell 5.1 — стара реліз системи, вбудована у Windows, функціонує на .NET Framework. *
Write-Debug— debug.== Invoke-Command ==
$ErrorActionPreference = "Stop"
У production scripts це здатна допомогти не пропустити помилки.== Write-Output, Write-Host, Write-Error == "Force mode enabled" Get-Service Добра практика — читати help перед запуском незнайомої команди. оновлення версій:
)
PowerShell має error handling через try/catch/finally.[1]
критично: не всі errors за замовчуванням terminating. Додавання:
Get-Process
}
} Double quotes підставляють змінні. finally { $config.Timeout Install-Module -Name Pester -Scope CurrentUser }
Update-Module -Name Pester
Error handling
- -Verbose;
- -Debug;
- -ErrorAction;
- -WhatIf;
- -Confirm. [int]$Limit = 100,
Import-Module Pester
[switch]$ForcePowerShell functions можуть поводитися як cmdlets, якщо правильно описати parameters.
} компонент здатна містити:
PowerShell Gallery
Це дає можливість працювати на віддаленій машині майже як локально.Invoke-Command виконує script block локально або віддалено. * Write-Error — error stream. * PowerShell 7+ — сучасна кросплатформена реліз системи, функціонує на сучасному .NET і запускається як pwsh. )
Станом на травень 2026 року актуальна LTS-гілка — '''PowerShell 7.6 LTS'''. Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {
$items += "four"
[switch]$Force
Доступ:
Get-Service
== Functions ==
function Get-UserReport {
<pre>
<pre>
</div>
== Enter-PSSession ==
Exit-PSSession
Timeout = 30
<div style="background:#fff7e6;border-left:6px solid #f2994a;padding:14px 18px;margin:16px 0;border-radius:8px;">
$name = "PowerShell"
<pre>
[string]$UserName
Set-Location
Get-Content -Path $Path -ErrorAction Stop
Встановлення модуля:
</div>
Приклад:
Install-Module Pester
<pre>
У PowerShell команди передають .NET objects. $isEnabled = $true
Encoding = "utf8"
New-Item
Це корисно для паралельного адміністрування.
}
[Parameter(Mandatory)]
Find-Module Pester
Parameters
Імпорт:
$job = Start-Job -ScriptBlock {
Приклад для кількох серверів:
PowerShell 7 можна встановлювати поруч із Windows PowerShell 5.1. PowerShell має single-quoted і double-quoted strings.== Актуальна реліз системи == <pre> Import-Module Az
Environment = "Production"
<pre>
Приклад:
Invoke-Command -ComputerName Server01 -ScriptBlock {
</div>
<code>$ErrorActionPreference</code> визначає поведінку non-terminating errors. Status -eq "Running"
Функція:
Приклад:
<code>ForEach-Object</code> виконує дію для кожного об’єкта pipeline.== Arrays ==
== Hashtables ==
catch {
Get-Process | Sort-Object CPU -Descending Для документації: у production краще писати конкретно: PowerShell 7.6 LTS або Windows PowerShell 5.1. param(
PowerShell має різні output streams. pwsh Remoting корисний для:
Приклад:
Проста аналогія: PowerShell — це не без зусиль командний рядок.Hashtables часто використовують для параметрів, конфігурації, JSON-подібних структур і splatting. '''Module''' — пакет PowerShell-коду.<pre> == Switch parameters == Це покаже команди, пов’язані із сервісами. param( '''Коротко:''' PowerShell — це shell для автоматизації. це кросплатформений shell, scripting language і automation framework від Microsoft; так само реалізовано автоматизації задач, DevOps, CI/CD, роботи з Windows, Linux, macOS, Azure, Microsoft 365, API, файлами, процесами, сервісами й structured data виступає ключовою рисою адміністрування систем забезпечується через '''PowerShell'''. Get-Content @params Приклад: <pre> } == Get-Command == Splatting робить довгі команди читабельнішими. "Hello, $name" Тут <code>Get-Process</code> повертає об’єкти процесів, а не без зусиль текстову таблицю. Get-Greeting -Name "Anna" Get-Help Get-Process -Full Приклад: == $ErrorActionPreference == Path = "C:\Temp\report.txt"
Get-ChildItem *.log | ForEach-Object {
<pre> Доступ: Приклад: * автора; * popularity; * source repository; * license; * останнє оновлення версій; * залежності; * security; * чи trusted repository.<ref>https://learn.microsoft.com/en-us/powershell/</ref> == Install-Module == Приклад: == Variables == Приклад: Вихід:
$config ["Environment"]
PowerShell Remoting
Якщо написано pwsh, це PowerShell 7+. Інтерактивна remote session:
== Cmdlets ==
PowerShell використовують для: Виклик:
Приклади:
Якщо написано <code>powershell.exe</code>, це часто означає Windows PowerShell 5.1. Краще використовувати collections або pipeline. Remove-Item $count = 10 Головна ідея PowerShell — цифровізувати рутинні адміністративні й інженерні задачі через зрозумілу командну мову. PowerShell має сильну вбудовану help-систему. Get-Process | Where-Object CPU -gt 100 | Sort-Object CPU -Descending
}
Hashtable: Get-Help Get-Process -Examples Приклад:
Get-Process | Select-Object Name, Id, CPU
Корисно для пошуку cmdlets, functions, aliases і applications. param( Сучасний PowerShell запускається командою:
pwsh
Get-Process
Приклад: Windows PowerShell зазвичай запускається як:
Get-Module
Remoting потребує правильної безпеки, автентифікації й мережевих налаштувань.[2]
PowerShell jobs дозволяють виконувати задачі у фоні. }
.\script.ps1 -Force
powershell.exe
- адміністрування Windows;
- керування файлами й процесами;
- автоматизації серверів;
- CI/CD;
- Azure automation;
- Microsoft 365 administration;
- роботи з REST API;
- обробки JSON, CSV, XML;
- керування сервісами;
- конфігурація систем;
- deployment scripts;
- DevOps tasks;
- звітів і audit;
- security automation. }
Microsoft Lifecycle показує, що PowerShell 7.6 LTS стартував 18 березня 2026 року й підтримується до 14 листопада 2028 року. Це пульт керування системою, де команди повертають структуровані об’єкти, а не “кашу” з тексту. Приклад: ConvertTo-Json PowerShell має сильну систему parameters. Для catch часто потрібно <code>-ErrorAction Stop</code>. * <code>Write-Host</code> — вивід на екран. Документація PowerShell містить окремий розділ Deploy і PowerShell Gallery. * <code>Write-Warning</code> — warning. Його сила — cmdlets, objects pipeline, modules, remoting і тісна інтеграційні функції ERP з Microsoft-екосистемою.
[string]$Name
Enter-PSSession -ComputerName Server01
$params = @{ Приклад:
Single quotes залишають текст як виступає як. $config = @{
[string]$Path,
PowerShell відрізняється від багатьох shell тим, що передає між командами не без зусиль текст, а об’єкти.== Splatting ==
Select-Object
PowerShell змінні можуть містити:
<code>Get-Help</code> показує довідку. Такий стиль робить команди більш передбачуваними. * <code>Write-Verbose</code> — verbose stream. $items [0] "Hello, $Name" <pre> [Parameter(Mandatory)] <code>$_</code> означає поточний об’єкт pipeline. PowerShell 7.5 підтримується до 10 листопада 2026 року, а PowerShell 7.4 LTS — так само до 10 листопада 2026 року.<pre>Cmdlet — основна команда PowerShell. Можна звертатися до властивостей об’єкта: Name, Id, CPU, Path, Status.
'''Чому це критично:''' у PowerShell не потрібно парсити колонки тексту. * functions; * cmdlets; * aliases; * variables; * classes; * formats; * types; * nested modules. Головна особливість PowerShell — pipeline об’єктів. Advanced function використовує <code>[CmdletBinding()]</code>. На GitHub Releases так само вказано релізи PowerShell 7.6.1 і 7.5.6. Write-Verbose "Done" Перед встановленням модуля потрібно перевіряти: Команди: Масив: <code>Sort-Object</code> сортує. Get-Service | ?
function Get-Greeting {
}
Get-Process | Select-Object -First 10 ) Виклик:
Enabled = $true
Get-Service | Where-Object Status -eq "Running"
Для великих масивів часте <code>+=</code> здатна бути повільним. Змінні в PowerShell починаються з <code>$</code>. Cmdlets мають стиль:
{{SEO|title=PowerShell — shell, scripting language, automation, objects pipeline, modules, remoting, DevOps і адміністрування Windows/Linux/macOS|description=PowerShell — Wiki-стаття про кросплатформений shell і scripting language від Microsoft для автоматизації, адміністрування, DevOps, CI/CD, Azure, Microsoft 365, Windows Server, Linux/macOS, objects pipeline, cmdlets, modules, remoting, jobs, error handling, security, execution policy, secrets, logging, testing, Pester, PowerShell Gallery, PowerShell 7.6 LTS і Windows PowerShell 5.1.|keywords=PowerShell, PowerShell 7.6, PowerShell 7, Windows PowerShell, PowerShell Core, Microsoft PowerShell, PowerShell scripting, PowerShell automation, cmdlets, objects pipeline, PowerShell modules, PowerShell remoting, PowerShell Gallery, Pester, PowerShell DSC, Azure PowerShell, Microsoft Graph PowerShell, Windows administration, DevOps PowerShell, CI/CD PowerShell, PowerShell security, execution policy, PowerShell scripts, pwsh|alternativeTo=ручне адміністрування серверів; batch scripts; cmd.exe; VBScript; ручні операції в Windows GUI; повторювані DevOps-задачі без автоматизації; shell без object pipeline; адміністрування Microsoft 365 без скриптів; ручне керування файлами, сервісами й реєстром}}
Але треба розуміти наслідки: script здатна зупинитися там, де раніше продовжував роботу.
Write-Error "Cannot read file: $_"
<pre>
try {
<code>Select-Object</code> вибирає properties.== Objects pipeline ==
Get-Process
У корпоративному середовищі встановлення модулів здатна бути обмежене політиками.[switch] — boolean-like параметр.[3]
через Get-Commandкористувачі можуть знаходити команди.[4]
Практична порада: не використовуйте Write-Host для даних, які мають піти далі в pipeline. так само можна брати перші або останні записи:
param(
}
<pre>
if ($Force) {
}
== Modules ==
<pre>
Get-Help Get-Process
Invoke-RestMethod
== Головна ідея == == Sort-Object == [CmdletBinding()] == ForEach-Object == Advanced functions підтримують common parameters, як приклад: </div> <pre> == Jobs == У документації краще писати повну форму, бо вона зрозуміліша. Microsoft Learn пояснює, що PowerShell 7 виступає як cross-platform, open-source і встановлюється side-by-side з Windows PowerShell 5.1. Приклад: * <code>Write-Output</code> — output pipeline. Приклад: '''PowerShell Remoting''' дає можливість виконувати команди на віддалених машинах. Modules допомагають організувати scripts у reusable components. Для даних використовуйте output, для повідомлень — verbose або information streams. Поведінка модулів і сумісність можуть відрізнятися. Verb-Noun <pre>PowerShell Gallery — офіційний репозиторій PowerShell-модулів і scripts.
== Advanced functions == $name = "Anna"
Типи параметрів допомагають робити scripts надійнішими. * адміністрування серверів;
- масових змін;
- audit;
- deployment;
- troubleshooting;
- Windows Server;
- hybrid environments. 'Hello, $name'
Where-Object
Strings
Приклад:
Write-Host $_.FullName
<pre> )
Приклад: