PowerShell
Додавання:
Invoke-ScriptAnalyzer -Path .\MyScript.ps1
-Uri "https://api.example.com/items" `
Головна особливість PowerShell — pipeline об’єктів. PowerShell використовують для: Головна ідея PowerShell — цифровізувати рутинні адміністративні й інженерні задачі через зрозумілу командну мову. DSC застосовується для для:
Invoke-RestMethod
- functions;
- cmdlets;
- aliases;
- variables;
- classes;
- formats;
- types;
- nested modules.
Modules допомагають організувати scripts у reusable components. }
Це покаже команди, пов’язані із сервісами. Для великих масивів часте <code>+=</code> здатна бути повільним.
Приклад:
Проста аналогія: PowerShell — це не без зусиль командний рядок. * Write-Debug — debug. Краще використовувати collections або pipeline.
Приклад:
* Windows administration;
* Microsoft 365;
* Azure;
* DevOps;
* CI/CD;
* server automation;
* file operations;
* registry operations;
* service management;
* CSV/JSON/XML processing;
* REST API automation;
* scheduled tasks;
* audit reports;
* deployment scripts;
* troubleshooting;
* інтеграцій. Shell !! # Використовувати SecretManagement або vault. Get-ChildItem -Path C:\Logs -Filter *.log |
== Jobs ==
== Error handling ==
</div>
Enter-PSSession -ComputerName Server01
== Актуальна реліз системи ==
PowerShell scripts можна підписувати. Приклад:
}
param(
PowerShell побудований на .NET і здатна працювати з .NET objects. PowerShell часто застосовується для в DevOps.== Execution Policy ==
Get-Help Get-Process -Examples
== PowerShell і Windows PowerShell ==
Приклад:
Enabled = $true
{{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 без скриптів; ручне керування файлами, сервісами й реєстром}}
Це корисно для quick diagnostics, reports і audit scripts.== Практичний висновок ==
== Cmdlets ==
'''Pester''' — популярний testing framework для PowerShell.<ref>https://learn.microsoft.com/en-us/lifecycle/products/powershell</ref>
Jobs корисні для довгих операцій, але в сучасних сценаріях так само використовують runspaces, ThreadJob або CI/CD runners. Environment = "Production"
}
Для scheduled scripts logging особливо важливий. * '''WhatIf''' — режим попереднього перегляду дії без виконання. це кросплатформений shell, scripting language і automation framework від Microsoft; так само реалізовано автоматизації задач, DevOps, CI/CD, роботи з Windows, Linux, macOS, Azure, Microsoft 365, API, файлами, процесами, сервісами й structured data виступає ключовою рисою адміністрування систем забезпечується через '''PowerShell'''.== PowerShell Gallery ==
Pester корисний для:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
* викликати .NET classes;
* працювати з assemblies;
* створювати objects;
* використовувати .NET APIs;
* писати binary modules на C#. Status -eq "Running"
Це критично для:
Не варто зберігати secrets у plain text scripts. Сильні сторони
У документації краще писати повну форму, бо вона зрозуміліша. Для automation краще створювати окремі service accounts із мінімальними правами. PowerShell GitHub repository описує PowerShell як оптимізований для structured data, зокрема JSON, CSV, XML, REST APIs і object models. PowerShell має cmdlets для файлів:
- configuration management;
- server baseline;
- compliance;
- repeatable environments;
- infrastructure automation.
PowerShell має single-quoted і double-quoted strings. Execution Policy не виступає як повноцінною security boundary. Для серйозної автоматизації PowerShell scripts теж потрібно тестувати. * '''PowerShell 7+''' — сучасна кросплатформена реліз системи, функціонує на сучасному .NET і запускається як <code>pwsh</code>.[[Категорія:Адміністрування]] Get-Content -Path $Path -ErrorAction Stop [Parameter(Mandatory)] Обмеження: Idempotent scripts безпечніші для deployment і configuration.<pre>
[Parameter(Mandatory)]
Приклад:
|- | '''PowerShell''' || pipeline об’єктів, cmdlets, .NET objects, Microsoft ecosystem |- | '''Bash''' || текстовий pipeline, Unix tools, простота для POSIX-систем |} Змінні в PowerShell починаються з <code>$</code>. * адміністрування серверів; * масових змін; * audit; * deployment; * troubleshooting; * Windows Server; * hybrid environments. * '''pwsh''' — виконуваний файл PowerShell 7+.== PowerShell і ERP-системи == * build; * test; * deploy; * Azure automation; * artifact packaging; * release validation.== Secrets == Hashtables часто використовують для параметрів, конфігурації, JSON-подібних структур і splatting.<pre> == Advanced functions == <pre> $data | Where-Object Department -eq "Sales" Get-ExecutionPolicy Краще використовувати: == Install-Module ==
try {
Desired State Configuration
У PowerShell команди передають .NET objects. param(
param(
Least privilege
$count = 10
Objects pipeline
Ідея: описати бажаний стан системи, а не вручну виконувати всі кроки. * Write-Verbose — verbose stream.
$xml.configuration.appSettings.add
Правила: Python краще для складнішої програмної логіки, data science і AI. New-Item
критично: не слід радити “без зусиль поставити Unrestricted” як стандартне рішення для бізнесу. Інструмент !![1]
Set-Location
Timeout = 30
На Linux/macOS PowerShell корисний для:
У сучасних cloud environments часто використовують Microsoft Graph і Entra ID modules. * PowerShell Gallery — репозиторій PowerShell-модулів і scripts. }
- отримати token;
- викликати endpoint;
- зберегти JSON;
- сформувати CSV-звіт;
- надіслати результат адміністратору. Якщо написано
powershell.exe, це часто означає Windows PowerShell 5.1. PowerShell здатна бути невдалим вибором, якщо:
Add-Numbers 2 3 | Should -Be 5
Splatting робить довгі команди читабельнішими. # Писати повні cmdlet names, а не aliases. У корпоративному середовищі PowerShell повинен бути видимим для security teams. Вихід:
компонент здатна містити: == Azure PowerShell == == Коли PowerShell здатна бути невдалим вибором == Path = "C:\Temp\report.txt" Встановлення модуля: PowerShell добре функціонує з JSON. Для бізнес-звітності ERP краще використовувати спеціалізований reporting layer, але PowerShell здатна допомогти з технічними export/import задачами. PowerShell і Python часто доповнюють одне одного.== Working with files == <pre> # Використовувати PowerShell 7.6 LTS для нових cross-platform scripts. як приклад, Windows-specific modules можуть залежати від Windows APIs.<div style="background:#fff7e6;border-left:6px solid #f2994a;padding:14px 18px;margin:16px 0;border-radius:8px;"> * не замінює повноцінну backend-мову для великих сервісів; * Windows PowerShell і PowerShell 7 мають різну сумісність; * modules можуть бути platform-specific; * scripts можуть бути небезпечними без review; * execution policy не виступає як повним захистом; * секрети потрібно зберігати правильно; * production automation потребує тестів, логів і least privilege. Get-Help Get-Process
PowerShell найкраще використовувати там, де потрібна швидка, контрольована й повторювана автоматизація процесів: від локальних scripts до enterprise DevOps і Microsoft cloud administration. * '''PSCredential''' — тип для зберігання credentials. виступає як дві важливі лінії:
</div>
{| class="wikitable"
== Pester ==
Якщо написано <code>pwsh</code>, це PowerShell 7+.[[Категорія:Microsoft]]
)
$body = @{
Invoke-RestMethod
$cred = Get-Credential
}
<pre>
$data | ConvertTo-Json -Depth 10
Це дає можливість працювати на віддаленій машині майже як локально. * '''Objects pipeline''' — pipeline, який передає об’єкти, а не лише текст. PowerShell сильний для structured data й Microsoft automation. AD cmdlets зазвичай доступні через RSAT/ActiveDirectory module. Remove-Item
У власних advanced functions можна підтримувати <code>ShouldProcess</code>, щоб додати <code>-WhatIf</code> і <code>-Confirm</code>. * '''Enter-PSSession''' — інтерактивна remote session. * '''Cmdlet''' — команда PowerShell у форматі Verb-Noun.
Get-Greeting -Name "Anna"
Hashtable:
Команди:
function Get-Greeting {
- enterprise;
- production scripts;
- security policies;
- regulated environments;
- deployment automation. -Method Post `
param(
- SecretManagement module;
- SecretStore;
- Azure Key Vault;
- Windows Credential Manager;
- environment variables;
- CI/CD secret storage;
- managed identities. * Hashtable — key-value структура. Exit-PSSession
Не варто запускати все від Administrator, якщо достатньо звичайного користувача. # Використовувати [CmdletBinding()] для складних functions. Такий стиль робить команди більш передбачуваними. * Remoting — віддалене виконання PowerShell-команд. Windows PowerShell зазвичай запускається як:
Приклад для кількох серверів:
}
<pre> </div> Але PowerShell не повинен обходити бізнес-логіку ERP, права доступу або audit. Його сила — cmdlets, objects pipeline, modules, remoting і тісна інтеграційні функції ERP з Microsoft-екосистемою. $ErrorActionPreference = "Stop"
$data = Import-Csv .\users.csv
- запускати scripts без розуміння;
- ігнорувати errors;
- не використовувати
-ErrorAction Stopтам, де потрібен catch; - зберігати passwords у plain text;
- використовувати
Write-Hostзамість pipeline output; - плутати Windows PowerShell 5.1 і PowerShell 7;
- не вказувати encoding;
- не тестувати scripts;
- не логувати scheduled tasks;
- не перевіряти modules із Gallery;
- використовувати aliases у production scripts;
- не використовувати
-WhatIfперед destructive діями. Stop-Transcript
PowerShell підтримує <code>-WhatIf</code> для багатьох destructive commands. * '''Idempotency''' — повторний запуск script не створює небажаних змін. [int]$Limit = 100,
It "adds numbers" {
* '''PowerShell''' — shell, scripting language і automation framework. * '''DSC''' — Desired State Configuration. Це пульт керування системою, де команди повертають структуровані об’єкти, а не “кашу” з тексту. * '''Invoke-Command''' — cmdlet для виконання script block локально або віддалено.<ref>https://learn.microsoft.com/en-us/powershell/</ref>
== Credentials ==
Advanced function використовує <code>[CmdletBinding()]</code>.
Remoting потребує правильної безпеки, автентифікації й мережевих налаштувань. Поведінка модулів і сумісність можуть відрізнятися. # Не зберігати secrets у scripts.== pwsh == Приклад: Get-ADUser
Get-ChildItem *.log | ForEach-Object {
$items += "four"
Приклад: 'Hello, $name'
$job = Start-Job -ScriptBlock {
Доступ:
PowerShell functions можуть поводитися як cmdlets, якщо правильно описати parameters.Azure Pipelines має PowerShell tasks. }
Encoding = "utf8"Windows PowerShell часто застосовується для для Active Directory. PowerShell 7.5 підтримується до 10 листопада 2026 року, а PowerShell 7.4 LTS — так само до 10 листопада 2026 року.
Коли PowerShell особливо корисний
Hashtables
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock { PowerShell часто функціонує з secrets: PowerShell дуже поширений у Microsoft 365 administration. PowerShell Gallery — офіційний репозиторій PowerShell-модулів і scripts. * deployment scripts;
- backup scripts;
- automation around Windows services;
- log collection;
- scheduled exports;
- API calls;
- monitoring checks;
- CI/CD;
- адміністративних задач;
- integration scripts;
- генерації технічних звітів.== Logging ==
- passwords;
- tokens;
- API keys;
- certificates;
- connection strings;
- credentials.
PowerShell automation має логувати результат.== Write-Output, Write-Host, Write-Error ==
Офіційна документація Microsoft описує PowerShell як product documentation для встановлення, використання, прикладів scripts, deployment, PowerShell Gallery і module reference. * transcript;
- structured logs;
- Start-Transcript;
- Write-Information;
- custom log files;
- Windows Event Log;
- SIEM integration;
- CI/CD logs. Get-Process
active = $true
Invoke-RestMethod `
Functions
Імпорт: Приклади: Сценарії: Get-Content [CmdletBinding()]
REST API
Для великого production-сервісу або library — C# здатна бути кращим. Get-Help Get-Process -Full REST API + PowerShell — популярна пара для інтеграцій і automation. Під час роботи з PowerShell варто: PSScriptAnalyzer — статичний аналізатор PowerShell-коду. * Pester — testing framework для PowerShell. Краще розуміти політику, підпис scripts і корпоративні правила. офіційний GitHub repository описує PowerShell як cross-platform automation and configuration tool/framework for Windows, Linux and macOS. * Splatting — передача параметрів через hashtable. Module — пакет PowerShell-коду.== Arrays ==
ForEach-Object
Поширені помилки:
== Get-Help == * Task Scheduler; * Scheduled Jobs; * Scheduled Tasks; * Azure Automation; * CI/CD schedules.
Приклад:
pwsh
Get-Process | Sort-Object CPU -Descending
Приклад:
PowerShell 7 функціонує на: Cmdlets мають стиль: Azure PowerShell — модулі для керування Azure. Важливі механізми:
$json | ConvertFrom-Json
Get-Process | Select-Object Name, Id, CPU
Cross-platform PowerShell
Це корисно для паралельного адміністрування. * ScriptBlock — блок PowerShell-коду як значення. Get-Service
PowerShell має сильну вбудовану help-систему. Приклад:
Приклад:
Dry run і WhatIf
ConvertTo-Json
Get-Service | ? }
PowerShell DSC — Desired State Configuration. * Pipeline — передача результатів однієї команди в іншу.PowerShell має різні output streams. Приклад:
PowerShell має тип <code>PSCredential</code>. * якщо папка вже існує — не помилка; * якщо сервіс уже запущений — не запускати зайве; * якщо користувач системи уже створений — оновити або пропустити. * <code>Write-Warning</code> — warning.<pre> <pre> '''Idempotency''' — властивість script, коли повторний запуск не ламає систему й не створює дублікати. Приклади: '''Чому це критично:''' у PowerShell не потрібно парсити колонки тексту.<pre> Приклад: "Hello, $name" <pre> [[Категорія:Windows]] Станом на травень 2026 року актуальна LTS-гілка — '''PowerShell 7.6 LTS'''. } | ConvertTo-Json
[string]$UserNameТут
Get-Process повертає об’єкти процесів, а не без зусиль текстову таблицю.* style issues; * potential bugs; * security problems; * deprecated patterns; * best practice violations. ! New-ADUser $isEnabled = $true == Parameters == Масив:
Він не веде обліковий облік, не проводить документи й не керує складом сам по собі. # Документувати scripts і приклади запуску. * Code signing — цифровий підпис scripts. * Module — пакет PowerShell-команд і функцій.
PowerShell здатна викликати REST API. оновлення версій:
Cmdlet — основна команда PowerShell.Для scheduled scripts критично логувати результат і помилки, бо користувач системи не бачить інтерактивний вивід. Get-Content @params <pre> Azure PowerShell застосовується для для: У GitHub Actions можна використовувати PowerShell. * '''SecretManagement''' — підхід і модулі для роботи з secrets. * '''PSScriptAnalyzer''' — статичний аналізатор PowerShell-коду.
Idempotency
Sort-Object
PowerShell scripts часто запускають за розкладом.[switch] — boolean-like параметр.== PowerShell у DevOps ==
Це радше safety feature, яка оптимізує запобігти випадковому запуску небажаних scripts.== Security logging і audit ==
PowerShell — один із найсильніших інструментів для automation, адміністрування й DevOps, особливо в Microsoft-екосистемі.[2]
Пояснення термінів
Find-Module Pester $items [0] Приклад:
Але треба розуміти наслідки: script здатна зупинитися там, де раніше продовжував роботу. У production scripts це здатна допомогти не пропустити помилки. Для даних використовуйте output, для повідомлень — verbose або information streams.== CSV ==
finally {
- objects pipeline;
- cmdlets;
- modules;
- PowerShell Gallery;
- remoting;
- cross-platform PowerShell 7;
- Windows PowerShell 5.1 compatibility;
- JSON/CSV/XML;
- REST API;
- Azure і Microsoft 365;
- Pester;
- PSScriptAnalyzer;
- CI/CD;
- automation scripts;
- .NET integration.
ForEach-Objectвиконує дію для кожного об’єкта pipeline. Install-Module -Name Pester -Scope CurrentUser
== Scheduled jobs і Task Scheduler == Set-ADUser
Enter-PSSession
} Перед встановленням модуля потрібно перевіряти:
PowerShell і Bash
== PowerShell і формування звітів == Get-Command *Service* == Invoke-Command == Добра практика — читати help перед запуском незнайомої команди. * unit tests; * script tests; * module tests; * infrastructure tests; * CI/CD; * regression tests. Команди: * users; * groups; * devices; * Teams; * SharePoint; * Entra ID; * reports; * permissions; * automation. $data | Export-Csv .\sales-users.csv -NoTypeInformation == Variables == <pre>Single quotes залишають текст як виступає як.
Invoke-Command -ComputerName Server01 -ScriptBlock {
Least privilege означає: script має мати тільки ті права, які йому справді потрібні. Можна звертатися до властивостей об’єкта: Name, Id, CPU, Path, Status. }
PowerShell дуже зручний для CSV. Приклади:
Для cross-platform agents краще використовуватиpwsh, а не Windows PowerShell.function Get-UserReport {
Хороші практики
New-Item
Microsoft Graph PowerShell SDK застосовується для для Microsoft 365 і Graph API.== Головна ідея == PowerShell потужний, тому його потрібно контролювати й моніторити. Import-Module Pester Конвертація: [switch]$Force Remoting корисний для: <pre> Start-Transcript -Path .\run.log PowerShell особливо корисний для: <pre>
catch {
PowerShell зручний для REST API. * <code>Write-Host</code> — вивід на екран.<pre>
PowerShell не виступає як ERP-системою.== PowerShell у GitHub Actions ==
PowerShell змінні можуть містити:
* script block logging;
* module logging;
* transcription;
* constrained language mode;
* AMSI;
* event logs;
* Defender integration;
* SIEM forwarding. PowerShell краще для адміністрування Windows/Microsoft 365/Azure. # опрацьовувати помилки через <code>try/catch</code>. Приклад:
Приклад:
Він оптимізує знаходити:
- Windows PowerShell 5.1 — стара реліз системи, вбудована у Windows, функціонує на .NET Framework. Receive-Job $job
Bash сильний для Unix scripting і текстових команд. PowerShell має error handling через <code>try/catch/finally</code>.
Функція:
- список файлів;
- стан сервісів;
- audit users;
- disk usage;
- installed modules;
- статус backup;
- API responses;
- CSV exports.
У класичному shell команди часто передають текст. Типи параметрів допомагають робити scripts надійнішими.== Switch parameters ==
Code signing
}
<code>Get-Help</code> показує довідку.<code>$ErrorActionPreference</code> визначає поведінку non-terminating errors.<ref>https://learn.microsoft.com/en-us/powershell/</ref> Get-Process <pre> PowerShell scripts можуть бути дуже потужними, тому потрібна обережність.<code>$_</code> означає поточний об’єкт pipeline. Install-Module Pester Import-Module Az name = "Test" == JSON == * не запускати незнайомі scripts без перевірки; * не вставляти команди з інтернету без розуміння; * не зберігати passwords у коді; * використовувати least privilege; * логувати важливі дії; * підписувати production scripts; * обмежувати доступ до modules; * перевіряти dependencies; * використовувати code review. Write-Host $_.FullName Приклад: <pre> Скорочено: У корпоративному середовищі встановлення модулів здатна бути обмежене політиками. # Явно вказувати <code>pwsh</code> у CI/CD. # Додавати <code>param()</code> і типи параметрів. * '''Windows PowerShell''' — стара реліз системи PowerShell 5.1 на .NET Framework. '''Для документації:''' у production краще писати конкретно: PowerShell 7.6 LTS або Windows PowerShell 5.1. powershell.exe <pre> == Типові помилки в PowerShell == Get-ChildItem Get-Process | Select-Object -First 10 DSC має окрему історію версій і сценаріїв, тому для production потрібно перевіряти актуальну документацію під конкретну платформу.<pre> Сильні сторони: Такі scripts корисні для адміністрування, але критичні операції мають бути захищені правами доступу й логуванням. '''PowerShell Remoting''' дає можливість виконувати команди на віддалених машинах.== PowerShell в Azure Pipelines == Get-AzVM Доступ:
Але не всі modules однаково працюють на всіх платформах. Основна ідея
-ContentType "application/json"
$config.Timeout
- CI/CD scripts;
- deployment;
- infrastructure automation;
- Azure pipelines;
- GitHub Actions;
- build scripts;
- release scripts;
- packaging;
- environment setup;
- secrets retrieval;
- smoke tests. # Використовувати
-WhatIfдля destructive operations.
Приклад:
Get-Process | Where-Object CPU -gt 100 | Sort-Object CPU -Descending
Get-AzResourceGroup
Execution Policy — механізм, який контролює запуск scripts у Windows PowerShell/PowerShell. * Least privilege — принцип мінімально необхідних прав.== Джерела ==
- commands
$response.users | Select-Object id, name
Code signing оптимізує підтвердити, що script походить із довіреного джерела й не був змінений. PowerShell відрізняється від багатьох shell тим, що передає між командами не без зусиль текст, а об’єкти. # Логувати scheduled і production runs.)
Виклик:
<pre>
Приклад:
Приклад:
$config = @{
* -Verbose;
* -Debug;
* -ErrorAction;
* -WhatIf;
* -Confirm. # Тестувати modules через Pester. run: |
$PSVersionTable
<pre> '''Коротко:''' PowerShell — це shell для автоматизації. PowerShell здатна працювати з XML. $response = Invoke-RestMethod -Uri "https://api.example.com/users" == PowerShell Remoting == Приклади: Приклад: Update-Module -Name Pester <div style="background:#eef6ff;border-left:6px solid #2f80ed;padding:14px 18px;margin:16px 0;border-radius:8px;"> [[Категорія:Microsoft 365]] Приклад: == Splatting ==
Підходи:
Modules
[[Категорія:Azure]] '''Практична порада:''' не використовуйте <code>Write-Host</code> для даних, які мають піти далі в pipeline. Write-Verbose "Done"
Select-Object вибирає properties.[3]
Сценарії:
Where-Object фільтрує об’єкти. [xml]$xml = Get-Content .\config.xml
Приклад:
| PowerShell | system administration, Microsoft ecosystem, shell automation |
| Python | general-purpose programming, data, AI, backend, scripting |
Приклад:
критично: не всі errors за замовчуванням terminating.Write-Output— output pipeline. Приклад:
Сучасний PowerShell запускається командою:
<code>Invoke-Command</code> виконує script block локально або віддалено. }
if ($Force) {
Microsoft Lifecycle показує, що PowerShell 7.6 LTS стартував 18 березня 2026 року й підтримується до 14 листопада 2028 року. # Дотримуватися least privilege.== Get-Command ==
<pre>
PowerShell jobs дозволяють виконувати задачі у фоні. Приклад:
[[Категорія:Програмування]]
<code>Sort-Object</code> сортує.== Microsoft Graph PowerShell ==
Describe "Calculator" {
PowerShell має сильну систему parameters. Інтерактивна remote session:
== PowerShell і API K2 ERP ==
./build.ps1
[string]$Path,
-Body $body `
Set-Content
Advanced functions підтримують common parameters, як приклад:
Get-Service | Where-Object Status -eq "Running"
У контексті [[K2 ERP]] PowerShell здатна бути корисним для:
На GitHub Releases так само вказано релізи PowerShell 7.6.1 і 7.5.6.== Select-Object ==
<pre>
Write-Error "Cannot read file: $_"
* Windows;
* Linux;
* macOS. # Перевіряти версію PowerShell і modules. * cloud automation;
* JSON/API scripts;
* DevOps;
* CI/CD;
* Azure;
* Microsoft 365;
* cross-platform tooling;
* automation around files;
* reporting. Microsoft Learn пояснює, що PowerShell 7 виступає як cross-platform, open-source і встановлюється side-by-side з Windows PowerShell 5.1. PowerShell можна використовувати для технічної звітності:
}
- name: Run PowerShell script
== Strings ==
XML досі часто зустрічається в Windows, legacy systems і enterprise configs. Move-Item
$name = "Anna"
так само можна брати перші або останні записи:
Це критично для безпечної автоматизації. * <code>Write-Error</code> — error stream. Для catch часто потрібно <code>-ErrorAction Stop</code>. Get-ADGroupMember
PowerShell 7 можна встановлювати поруч із Windows PowerShell 5.1. * '''Execution Policy''' — політика запуску scripts. * '''Job''' — фонова задача PowerShell.
- strings;
- numbers;
- arrays;
- hashtables;
- objects;
- script blocks;
- credentials;
- command results. # Аналізувати код через PSScriptAnalyzer. Verb-Noun
$name = "PowerShell"
)
- адміністрування Windows;
- керування файлами й процесами;
- автоматизації серверів;
- CI/CD;
- Azure automation;
- Microsoft 365 administration;
- роботи з REST API;
- обробки JSON, CSV, XML;
- керування сервісами;
- конфігурація систем;
- deployment scripts;
- DevOps tasks;
- звітів і audit;
- security automation.[4]
- потрібна велика backend-система;
- потрібен web API як production service;
- потрібна AI/data science ERP-платформа;
- задача краще вирішується SQL;
- потрібен portable Unix shell script;
- команда не знає PowerShell;
- потрібна складна application architecture;
- script стає настільки великим, що краще перейти на C#, Python або Go. ! Для швидкої автоматизації — PowerShell. Це краще, ніж просити користувача вводити password у plain text. [switch]$Force
Виклик: Remove-Item * resource management; * automation; * deployment; * audit; * reporting; * governance.== XML == Remove-Item .\old-files\* -WhatIf Документація PowerShell містить окремий розділ Deploy і PowerShell Gallery. $config ["Environment"] Але credential handling усе одно потребує обережності.
Test-Path
Приклад:
Це критично в scripts, CI/CD і документації.
== Дивіться так само ==
shell: pwsh
Сценарії:
Add-Content
Це дає можливість:
$params = @{
PowerShell особливо зручний у Windows і Azure environments. Connect-AzAccount
Get-Module
* автора;
* popularity;
* source repository;
* license;
* останнє оновлення версій;
* залежності;
* security;
* чи trusted repository. * '''PowerShell 7''' — сучасна cross-platform реліз системи PowerShell. Get-Process
== Where-Object ==
базовий компонент:
PowerShell і Bash мають різну філософію. На Windows можна використовувати:
через <code>Get-Command</code>користувачі можуть знаходити команди. CSV часто застосовують, коли потрібно для звітів, імпорту/експорту й адміністрування. Корисно для пошуку cmdlets, functions, aliases і applications. $items = @("one", "two", "three")
== PowerShell у Linux/macOS ==
'''Splatting''' дає можливість передавати параметри через hashtable.== $ErrorActionPreference ==
[string]$Name
Double quotes підставляють змінні. "Hello, $Name"
Write-Verbose "Generating report for $UserName"
== Script Analyzer ==
Copy-Item
Приклад:
Invoke-WebRequest
PowerShell і C#/.NET
Приклад:
Безпека PowerShell scripts
Приклад сценарію: Get-Service критично явно вказувати <code>pwsh</code>, якщо потрібен PowerShell 7. * [[C Sharp]] * [[Go]] * [[Python]] * [[Розробка в K2 ERP]] * [[Тестування коду]] * [[API K2 ERP]] * [[Інтеграції K2 ERP]] * [[Звітність K2 ERP]] * [[GitHub Copilot]] * [[Cursor]] * [[Tabnine]] * [[Retrieval-Augmented Generation]] * [[Великі мовні моделі]] * [[GPT]] * [[Claude Models]] * [[Штучний інтелект]] * [[Генеративний AI]]
- Microsoft Learn — PowerShell Documentation
- PowerShell GitHub Repository
- PowerShell GitHub Releases
- Microsoft Learn — Install PowerShell 7 on Windows
- Microsoft Learn — How to use PowerShell documentation
- Microsoft Lifecycle — PowerShell
- PowerShell Support Lifecycle
- Microsoft PowerShell Blog — PowerShell 7.5 GA
- PowerShell Gallery
- Pester
- Microsoft Learn — Everything you wanted to know about hashtables
- Microsoft Learn — Everything you wanted to know about script blocks
- MediaWiki — Help:Formatting
- MediaWiki — Help:Links
}
Where-Object LastWriteTime -lt (Get-Date).AddDays(-30)
Get-ChildItem
Active Directory
PowerShell і Python
.\script.ps1 -Force
) "Force mode enabled"
Az