Перейти до вмісту

PowerShell

Матеріал з K2 ERP Wiki
Версія від 20:18, 8 травня 2026, створена R (обговорення | внесок)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)

DSC має окрему історію версій і сценаріїв, з цієї причини для production потрібно перевіряти актуальну документацію під конкретну платформу.;== $ErrorActionPreference ==

Пояснення термінів

PowerShell має cmdlets для файлів:


Get-Content

* enterprise;
* production scripts;
* security policies;
* regulated environments;
* deployment automation.; Сценарії:

PowerShell відрізняється від багатьох shell тим, що передає між командами не без ускладнень текст, а об’єкти.;== Коли PowerShell має змогу бути невдалим вибором ==

[CmdletBinding()]

PowerShell у DevOps

PowerShell має сильну систему parameters.; Додавання:

$data = Import-Csv .\users.csv

Він не веде обліковий облік, не проводить документи й не керує складом сам по собі.;

PowerShell і формування звітів

Pester корисний для:


<pre>
Функція:
<pre>
PowerShell має single-quoted і double-quoted strings.; [xml]$xml = Get-Content .\config.xml
Get-ChildItem

<pre>

$items [0]

Azure PowerShell — модулі для керування Azure.; У GitHub Actions можна використовувати PowerShell.; # Обробляти помилки через try/catch.; Інструмент !!;

<pre>
 Get-Service

<code>$_</code> означає поточний об’єкт pipeline.; * '''PSScriptAnalyzer''' — статичний аналізатор PowerShell-коду.; Але PowerShell не повинен обходити бізнес-логіку ERP, права доступу або audit.; * <code>Write-Warning</code> — warning.;<ref>https://github.com/PowerShell/PowerShell</ref>

[[Категорія:Адміністрування]]

Це надає можливість:
 )
У корпоративному середовищі PowerShell повинен бути видимим для security teams.;
[string]$Name
  • deployment scripts;
  • backup scripts;
  • automation around Windows services;
  • log collection;
  • scheduled exports;
  • API calls;
  • monitoring checks;
  • CI/CD;
  • адміністративних задач;
  • integration scripts;
  • генерації технічних звітів.; Remove-Item .\old-files\* -WhatIf

PowerShell краще для адміністрування Windows/Microsoft 365/Azure.;Invoke-Command виконує script block локально або віддалено.; PowerShell дуже зручний для CSV.; * SecretManagement — підхід і модулі для роботи з secrets.; * style issues;

  • potential bugs;
  • security problems;
  • deprecated patterns;
  • best practice violations.; Краще використовувати collections або pipeline.; * Write-Host — вивід на екран.; Але не всі modules однаково працюють на всіх платформах.; * Code signing — цифровий підпис scripts.;

Execution Policy — механізм, який контролює запуск scripts у Windows PowerShell/PowerShell.; Exit-PSSession

Сильні сторони:


<code>Where-Object</code> фільтрує об’єкти.;

$config = @{

Invoke-RestMethod

Імпорт: Приклад: PowerShell має error handling через try/catch/finally.; * DSC — Desired State Configuration.; Він сприяє знаходити:

PowerShell часто функціонує з secrets:

Remoting потребує правильної безпеки, автентифікації й мережевих налаштувань.; # Не зберігати secrets у scripts.;== Практичний висновок ==

$name = "Anna"

Find-Module Pester

Dry run і WhatIf

Це радше safety feature, яка сприяє запобігти випадковому запуску небажаних scripts.; * Pipeline — передача результатів однієї команди в іншу.; * адміністрування серверів;

  • масових змін;
  • audit;
  • deployment;
  • troubleshooting;
  • Windows Server;
  • hybrid environments.; [Parameter(Mandatory)]

PowerShell automation має логувати результат.;Get-Help показує довідку.; * Splatting — передача параметрів через hashtable.; # Дотримуватися least privilege.; -Method Post `

  • SecretManagement module;
  • SecretStore;
  • Azure Key Vault;
  • Windows Credential Manager;
  • environment variables;
  • CI/CD secret storage;
  • managed identities.;== PowerShell і ERP-системи ==

Сучасний PowerShell запускається командою: Windows PowerShell зазвичай запускається як:

  1. commands

Приклад: У контексті K2 ERP PowerShell має змогу бути корисним для:

Azure Pipelines має PowerShell tasks.;

Write-Verbose "Done"

Get-ChildItem *.log | ForEach-Object {

active = $true

Вихід:

Scheduled jobs і Task Scheduler

Get-AzVM

Least privilege

Приклад:

AD cmdlets зазвичай доступні через RSAT/ActiveDirectory module.; Це пульт керування системою, де команди повертають структуровані об’єкти, а не “кашу” з тексту.; Для catch часто потрібно -ErrorAction Stop.; 'Hello, $name'

Це краще, ніж просити користувача вводити password у plain text.; $body = @{

  • script block logging;
  • module logging;
  • transcription;
  • constrained language mode;
  • AMSI;
  • event logs;
  • Defender integration;
  • SIEM forwarding.; * Job — фонова задача PowerShell.; Команди:

У корпоративному середовищі встановлення модулів має змогу бути обмежене політиками.;

== Write-Output, Write-Host, Write-Error ==

== Get-Command ==

[[Категорія:Shell]]
Якщо написано <code>pwsh</code>, це PowerShell 7+.; }
== PowerShell у GitHub Actions ==
Приклад:

Під час роботи з PowerShell варто:
== Дивіться додатково ==

}

Команди:

$response = Invoke-RestMethod -Uri "https://api.example.com/users"

Hashtables часто використовують для параметрів, конфігурації, JSON-подібних структур і splatting.; Приклад:
У документації краще писати повну форму, бо вона зрозуміліша.; Приклад:

$job = Start-Job -ScriptBlock {

Windows PowerShell часто застосовується для Active Directory.; PowerShell functions можуть поводитися як cmdlets, якщо правильно описати parameters.; param(
.\script.ps1 -Force

 "Force mode enabled"

* resource management;
* automation;
* deployment;
* audit;
* reporting;
* governance.; '''Чому це істотно:''' у PowerShell не потрібно парсити колонки тексту.; компонент має змогу містити:

== PowerShell і Windows PowerShell ==

* '''Windows PowerShell 5.1''' — стара реліз, вбудована у Windows, функціонує на .NET Framework.; * <code>Write-Error</code> — error stream.; $config.Timeout
Приклад:
Це покаже команди, пов’язані із сервісами.;== Arrays ==
Приклад:

)

Якщо написано <code>powershell.exe</code>, це часто означає Windows PowerShell 5.1.;<div style="background:#f6ffed;border-left:6px solid #27ae60;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.;== XML ==

$items += "four"

Splatting

  • автора;
  • popularity;
  • source repository;
  • license;
  • останнє актуалізація;
  • залежності;
  • security;
  • чи trusted repository.;

} Start-Transcript -Path .\run.log


<pre>

powershell.exe

Sort-Object сортує.; # Використовувати [CmdletBinding()] для складних functions.; Основна ідея

  • якщо папка вже існує — не помилка;
  • якщо сервіс уже запущений — не запускати зайве;
  • якщо користувач системи уже створений — оновити або пропустити.; * PowerShell Gallery — репозиторій PowerShell-модулів і scripts.;ForEach-Object виконує дію для кожного об’єкта pipeline.; PowerShell підтримує роботу -WhatIf для багатьох destructive commands.;== PowerShell і C#/.NET ==

Get-Command *Service*

[Parameter(Mandatory)]

Get-ChildItem

Code signing сприяє підтвердити, що script походить із довіреного джерела й не був змінений.; # Явно вказувати pwsh у CI/CD.; * PSCredential — тип для зберігання credentials.; $data | ConvertTo-Json -Depth 10

} | ConvertTo-Json На Windows можна використовувати: Краще використовувати: }

CSV

PowerShell має сильну вбудовану help-систему.; * Idempotency — повторний запуск script не створює небажаних змін.;[1]

Приклад:

Timeout = 30
<pre>
[[Категорія:Scripting]]

Get-Process | Select-Object -First 10

PowerShell часто застосовується в DevOps.; CSV часто застосовують, коли потрібно для звітів, імпорту/експорту й адміністрування.; * '''WhatIf''' — режим попереднього перегляду дії без виконання.; '''Для документації:''' у production краще писати конкретно: PowerShell 7.6 LTS або Windows PowerShell 5.1.; Az

<code>[switch]</code> — boolean-like параметр.; * '''Objects pipeline''' — pipeline, який передає об’єкти, а не лише текст.; * '''Least privilege''' — принцип мінімально необхідних прав.; Приклади:
 Write-Verbose "Generating report for $UserName"
PowerShell має змогу працювати з XML.; * build;
* test;
* deploy;
* Azure automation;
* artifact packaging;
* release validation.; Приклад:

'''Cmdlet''' — основна команда PowerShell.; Encoding = "utf8"
У класичному shell команди часто передають текст.;[[Категорія:Пояснення термінів]]
 param(
Але credential handling усе одно потребує обережності.;

Скорочено:

істотно: не слід радити “без ускладнень поставити Unrestricted” як стандартне рішення для бізнесу.;== Install-Module ==

Приклад:

Double quotes підставляють змінні.; * Windows PowerShell — стара реліз PowerShell 5.1 на .NET Framework.;

try {

  • PowerShell — shell, scripting language і automation framework.; Receive-Job $job

Джерела

Import-Module Pester

Invoke-Command -ComputerName Server01 -ScriptBlock {
Set-Content
PowerShell змінні можуть містити:
Get-Service | ?;== Switch parameters ==

<code>$ErrorActionPreference</code> визначає поведінку non-terminating errors.; актуалізація:

* потрібна велика backend-система;
* потрібен web API як production service;
* потрібна AI/data science програмний пакет;
* задача краще вирішується SQL;
* потрібен portable Unix shell script;
* команда не знає PowerShell;
* потрібна складна application architecture;
* script стає настільки великим, що краще перейти на C#, Python або Go.; # Використовувати SecretManagement або vault.; param(

'''PowerShell DSC''' — Desired State Configuration.; )

PowerShell scripts можна підписувати.; Документація PowerShell містить окремий розділ Deploy і PowerShell Gallery.;== Головна ідея ==

Доступ:

Для серйозної автоматизації PowerShell scripts теж потрібно тестувати.; $params = @{

== Cmdlets ==

Invoke-ScriptAnalyzer -Path .\MyScript.ps1
Azure PowerShell застосовується для:
[[Категорія:Azure]]

Приклади:

  • запускати 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 діями.; Advanced function використовує [CmdletBinding()].; Stop-Transcript

PowerShell — один із найсильніших інструментів для automation, адміністрування й DevOps, особливо в Microsoft-екосистемі.; PowerShell jobs дозволяють виконувати задачі у фоні.; # Тестувати modules через Pester.; PowerShell 7.5 підтримується до 10 листопада 2026 року, а PowerShell 7.4 LTS — додатково до 10 листопада 2026 року.; Конвертація:

Get-Process | Sort-Object CPU -Descending

Get-ChildItem -Path C:\Logs -Filter *.log |

[int]$Limit = 100,

Microsoft Graph PowerShell

На Linux/macOS PowerShell корисний для: } Get-Service | Where-Object Status -eq "Running"

<pre>

finally {

'''PowerShell Remoting''' надає можливість виконувати команди на віддалених машинах.;== Strings ==
ConvertTo-Json
== Parameters ==
Get-ExecutionPolicy

Це істотно в scripts, CI/CD і документації.;== Коли PowerShell особливо корисний ==

== Sort-Object ==
Обмеження:
<pre>

У сучасних cloud environments часто використовують Microsoft Graph і Entra ID modules.; * '''Module''' — пакет PowerShell-команд і функцій.;<pre>

Objects pipeline

  • configuration management;
  • server baseline;
  • compliance;
  • repeatable environments;
  • infrastructure automation.; офіційно затверджений GitHub repository описує PowerShell як cross-platform automation and configuration tool/framework for Windows, Linux and macOS.;== PowerShell і Bash ==
  • strings;
  • numbers;
  • arrays;
  • hashtables;
  • objects;
  • script blocks;
  • credentials;
  • command results.; Connect-AzAccount

}

PowerShell зручний для REST API.; Update-Module -Name Pester

$data | Where-Object Department -eq "Sales"

Для великих масивів часте += має змогу бути повільним.;

Головна особливість PowerShell — pipeline об’єктів.; Приклад:

Для scheduled scripts logging особливо важливий.;== Безпека PowerShell scripts ==

-ContentType "application/json"

Приклад:

Cross-platform PowerShell


<pre>

<pre>

<pre>

Офіційна документація Microsoft описує PowerShell як product documentation для встановлення, використання, прикладів scripts, deployment, PowerShell Gallery і module reference.; PowerShell scripts часто запускають за розкладом.; Python краще для складнішої програмної логіки, data science і AI.; Microsoft Graph PowerShell SDK застосовується для Microsoft 365 і Graph API.; Get-ADGroupMember

 Enabled = $true

Splatting робить довгі команди читабельнішими.; PowerShell не є собою ERP-системою.;== Типові помилки в PowerShell ==

<pre>
- name: Run PowerShell script
Remove-Item

<code>Select-Object</code> вибирає properties.;<ref>https://github.com/PowerShell/PowerShell</ref>

Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {

$isEnabled = $true
== Desired State Configuration ==
|-
| '''PowerShell''' || system administration, Microsoft ecosystem, shell automation
|-
| '''Python''' || general-purpose programming, data, AI, backend, scripting
|}

<pre>

== Hashtables ==

Такий стиль робить команди більш передбачуваними.;<pre>

!;<pre>
PowerShell scripts можуть бути дуже потужними, з цієї причини потрібна обережність.; '''PSScriptAnalyzer''' — статичний аналізатор PowerShell-коду.; * -Verbose;
* -Debug;
* -ErrorAction;
* -WhatIf;
* -Confirm.; додатково можна брати перші або останні записи:
}

== PowerShell в Azure Pipelines ==

PowerShell найкраще використовувати там, де потрібна швидка, контрольована й повторювана автоматизація процесів: від локальних scripts до enterprise DevOps і Microsoft cloud administration.; * '''PowerShell 7''' — сучасна cross-platform реліз PowerShell.; New-Item

Це істотно для:

'''Проста аналогія:''' PowerShell — це не без ускладнень командний рядок.;== Credentials ==

Приклад для кількох серверів:

Copy-Item

Get-Content @params

  • CI/CD scripts;
  • deployment;
  • infrastructure automation;
  • Azure pipelines;
  • GitHub Actions;
  • build scripts;
  • release scripts;
  • packaging;
  • environment setup;
  • secrets retrieval;
  • smoke tests.; Add-Numbers 2 3 | Should -Be 5
Для бізнес-звітності ERP краще використовувати спеціалізований reporting layer, але PowerShell має змогу допомогти з технічними export/import задачами.; # Перевіряти версію PowerShell і modules.;

== Where-Object ==

Перед встановленням модуля потрібно перевіряти:

Приклад:
== PowerShell і Python ==
PowerShell добре функціонує з JSON.; завдяки наявності <code>Get-Command</code>користувачі можуть знаходити команди.; Hashtable:

* адміністрування Windows;
* керування файлами й процесами;
* автоматизації серверів;
* CI/CD;
* Azure automation;
* Microsoft 365 administration;
* роботи з REST API;
* обробки JSON, CSV, XML;
* керування сервісами;
* конфігурація систем;
* deployment scripts;
* DevOps tasks;
* звітів і audit;
* security automation.; DSC застосовується для:
catch {
[[Категорія:Windows]]

== Active Directory ==

== PowerShell Remoting ==

Змінні в PowerShell починаються з <code>$</code>.;== PowerShell і API K2 ERP ==

Це корисно для паралельного адміністрування.; Його сила — cmdlets, objects pipeline, modules, remoting і тісна інтеграційні функціональні можливості з Microsoft-екосистемою.; * <code>Write-Verbose</code> — verbose stream.; Write-Host $_.FullName

Invoke-RestMethod `

<pre>

Приклад:

<pre>

== Select-Object ==

* transcript;
* structured logs;
* Start-Transcript;
* Write-Information;
* custom log files;
* Windows Event Log;
* SIEM integration;
* CI/CD logs.; * '''Cmdlet''' — команда PowerShell у форматі Verb-Noun.; Get-Help Get-Process
== Invoke-Command ==

PowerShell особливо корисний для:

* unit tests;
* script tests;
* module tests;
* infrastructure tests;
* CI/CD;
* regression tests.;

PowerShell можна використовувати для технічної звітності:

Error handling

}

ключовий компонент:


PowerShell потужний, з цієї причини його потрібно контролювати й моніторити.; PowerShell дуже поширений у Microsoft 365 administration.; Встановлення модуля:

}

Module — пакет PowerShell-коду.; Для cross-platform agents краще використовувати pwsh, а не Windows PowerShell.; У production scripts це має змогу допомогти не пропустити помилки.;

Cmdlets мають стиль:

Приклад:

PowerShell має різні output streams.; * '''Execution Policy''' — політика запуску scripts.;== Code signing ==

Describe "Calculator" {

* cloud automation;
* JSON/API scripts;
* DevOps;
* CI/CD;
* Azure;
* Microsoft 365;
* cross-platform tooling;
* automation around files;
* reporting.;<ref>https://learn.microsoft.com/en-us/powershell/</ref>

* Windows;
* Linux;
* macOS.;

<pre>

Single quotes залишають текст як є собою.;<ref>https://learn.microsoft.com/en-us/shows/it-ops-talk/how-to-install-powershell-7</ref>

* functions;
* cmdlets;
* aliases;
* variables;
* classes;
* formats;
* types;
* nested modules.; function Get-UserReport {

Типи параметрів допомагають робити scripts надійнішими.;== Хороші практики ==

<pre>

* не запускати незнайомі scripts без перевірки;
* не вставляти команди з інтернету без розуміння;
* не зберігати passwords у коді;
* використовувати least privilege;
* логувати важливі дії;
* підписувати production scripts;
* обмежувати доступ до modules;
* перевіряти dependencies;
* використовувати code review.;== Secrets ==

* список файлів;
* стан сервісів;
* audit users;
* disk usage;
* installed modules;
* статус backup;
* API responses;
* CSV exports.; XML досі часто зустрічається в Windows, legacy systems і enterprise configs.; * Task Scheduler;
* Scheduled Jobs;
* Scheduled Tasks;
* Azure Automation;
* CI/CD schedules.; $xml.configuration.appSettings.add
PowerShell і Python часто доповнюють одне одного.; * 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;
* інтеграцій.;== pwsh ==

$name = "PowerShell"

Виклик:
Get-Module
Для великого production-сервісу або library — C# має змогу бути кращим.;

Get-Process | Select-Object Name, Id, CPU

run: |

}

Enter-PSSession -ComputerName Server01


<div style="background:#eef6ff;border-left:6px solid #2f80ed;padding:14px 18px;margin:16px 0;border-radius:8px;">
Приклад:
if ($Force) {
function Get-Greeting {

У PowerShell команди передають .NET objects.; Jobs корисні для довгих операцій, але в сучасних сценаріях додатково використовують runspaces, ThreadJob або CI/CD runners.; Shell !!;<pre>

<div style="background:#fff7e6;border-left:6px solid #f2994a;padding:14px 18px;margin:16px 0;border-radius:8px;">

$ErrorActionPreference = "Stop"

Приклад:
Get-ADUser
Сценарії:
== Working with files ==
Install-Module Pester
 shell: pwsh
Get-Service

</div>
 $PSVersionTable
Для scheduled scripts істотно логувати результат і помилки, бо користувач системи не бачить інтерактивний вивід.;[[Категорія:Інтеграції]]

Виклик:

істотно явно вказувати <code>pwsh</code>, якщо потрібен PowerShell 7.; REST API + PowerShell — популярна пара для інтеграцій і automation.; PowerShell використовують для:

PowerShell і Bash мають різну філософію.; Не варто запускати все від Administrator, якщо достатньо звичайного користувача.;<pre>
істотно: не всі errors за замовчуванням terminating.;<ref>https://learn.microsoft.com/en-us/powershell/</ref>
Приклади:
Приклад:

Logging

Приклад:

Для automation краще створювати окремі service accounts із мінімальними правами.; PowerShell особливо зручний у Windows і Azure environments.; # Використовувати -WhatIf для destructive operations.;

!; * Enter-PSSession — інтерактивна remote session.; Сильні сторони

[switch]$Force

Підходи:

PowerShell у Linux/macOS

Get-Process | Where-Object CPU -gt 100 | Sort-Object CPU -Descending

Jobs

Azure PowerShell

Приклад сценарію:

Інтерактивна remote session:

Idempotent scripts безпечніші для deployment і configuration.;

Modules допомагають організувати scripts у reusable components.; * Pester — testing framework для PowerShell.;

Idempotency — властивість script, коли повторний запуск не ламає систему й не створює дублікати.; * Invoke-Command — cmdlet для виконання script block локально або віддалено.; Status -eq "Running"

{| class="wikitable"
Приклад:
Get-Greeting -Name "Anna"

 [switch]$Force

<div style="background:#fff0f0;border-left:6px solid #eb5757;padding:14px 18px;margin:16px 0;border-radius:8px;">

Script Analyzer

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser


[[Категорія:Безпека]]

Добра практика — читати help перед запуском незнайомої команди.; * '''Hashtable''' — key-value структура.;<pre>

Такі scripts корисні для адміністрування, але критичні операції мають бути захищені правами доступу й логуванням.;<pre>

Поширені помилки:

== Актуальна реліз ==

== Variables ==

Advanced functions підтримують common parameters, як ілюстрація:

./build.ps1

Сценарії: New-Item }

"Hello, $Name"

Remove-Item

[string]$UserName

Import-Module Az

Get-Process
-Body $body `

Bash сильний для Unix scripting і текстових команд.;

У власних advanced functions можна підтримувати ShouldProcess, щоб додати -WhatIf і -Confirm.;

-Uri "https://api.example.com/items" `
  • 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.; Краще розуміти політику, підпис scripts і корпоративні правила.; New-ADUser

  • отримати token;
  • викликати endpoint;
  • зберегти JSON;
  • сформувати CSV-звіт;
  • надіслати результат адміністратору.; Install-Module -Name Pester -Scope CurrentUser

Масив:

param(
[string]$Path,

{{SEO

Доступ: PowerShell має тип PSCredential.;[2]

Але для класичних Unix tasks Bash, zsh, Python або Go можуть бути природнішими.; # Писати повні cmdlet names, а не aliases.; Це корисно для quick diagnostics, reports і audit scripts.; Приклад:

Приклад:

  1. Використовувати PowerShell 7.6 LTS для нових cross-platform scripts.; Практична порада: не використовуйте Write-Host для даних, які мають піти далі в pipeline.;

Test-Path

PowerShell побудований на .NET і має змогу працювати з .NET objects.; Корисно для пошуку cmdlets, functions, aliases і applications.; Приклад:

Get-Process Головна ідея PowerShell — автоматизувати рутинні адміністративні й інженерні задачі через зрозумілу командну мову.; * PowerShell 7+ — сучасна кросплатформена реліз, функціонує на сучасному .NET і запускається як pwsh.; Це надає можливість працювати на віддаленій машині майже як локально.; Invoke-WebRequest

Environment = "Production"

PowerShell 7 можна встановлювати поруч із Windows PowerShell 5.1.; pwsh

Get-Help Get-Process -Full

$cred = Get-Credential

Invoke-RestMethod

Не варто зберігати secrets у plain text scripts.; $items = @("one", "two", "three")

Add-Content Get-Help Get-Process -Examples Set-ADUser

Functions


 Write-Error "Cannot read file: $_"

$data | Export-Csv .\sales-users.csv -NoTypeInformation

* <code>Write-Output</code> — output pipeline.;== JSON ==

== Modules ==
Правила:
|-
| '''PowerShell''' || pipeline об’єктів, cmdlets, .NET objects, Microsoft ecosystem
|-
| '''Bash''' || текстовий pipeline, Unix tools, простота для POSIX-систем
|}

є собою дві важливі лінії:

<pre>

PowerShell GitHub repository описує PowerShell як оптимізований для structured data, зокрема JSON, CSV, XML, REST APIs і object models.; '''Коротко:''' PowerShell — це shell для автоматизації.;== REST API ==

Приклад:

* passwords;
* tokens;
* API keys;
* certificates;
* connection strings;
* credentials.; # Додавати <code>param()</code> і типи параметрів.; Remoting корисний для:

== Security logging і audit ==

== ForEach-Object ==
Станом на травень 2026 року актуальна LTS-гілка — '''PowerShell 7.6 LTS'''.; Поведінка модулів і сумісність можуть відрізнятися.; Можна звертатися до властивостей об’єкта: Name, Id, CPU, Path, Status.;<pre>

== Pester ==

* викликати .NET classes;
* працювати з assemblies;
* створювати objects;
* використовувати .NET APIs;
* писати binary modules на C#.; * '''pwsh''' — виконуваний файл PowerShell 7+.; * '''ScriptBlock''' — блок PowerShell-коду як значення.; * <code>Write-Debug</code> — debug.; На GitHub Releases додатково вказано релізи PowerShell 7.6.1 і 7.5.6.; name = "Test"

Get-AzResourceGroup

== Advanced functions ==
'''PowerShell Gallery''' — офіційно затверджений репозиторій PowerShell-модулів і scripts.; Execution Policy не є собою повноцінною security boundary.; Приклад:
<pre>

 Path = "C:\Temp\report.txt"
}
Для швидкої автоматизації — PowerShell.;

Приклад:


Set-Location

Move-Item Приклад:


$config ["Environment"]

Microsoft Lifecycle показує, що PowerShell 7.6 LTS стартував 18 березня 2026 року й підтримується до 14 листопада 2028 року.; Ідея: описати бажаний стан системи, а не вручну виконувати всі кроки.;</div>
== Idempotency ==

це кросплатформений shell, scripting language і automation framework від Microsoft; додатково реалізовано автоматизації задач, DevOps, CI/CD, роботи з Windows, Linux, macOS, Azure, Microsoft 365, API, файлами, процесами, сервісами й structured data виступає ключовою рисою адміністрування систем забезпечується через PowerShell.;

PowerShell сильний для structured data й Microsoft automation.; Для даних використовуйте output, для повідомлень — verbose або information streams.; Least privilege означає: script має мати тільки ті права, які йому справді потрібні.; # Аналізувати код через PSScriptAnalyzer.;== Get-Help ==

як ілюстрація, Windows-specific modules можуть залежати від Windows APIs.; # Логувати scheduled і production runs.; $json | ConvertFrom-Json

$count = 10

It "adds numbers" {

Тут Get-Process повертає об’єкти процесів, а не без ускладнень текстову таблицю.; Важливі механізми:

Приклади:

  • users;
  • groups;
  • devices;
  • Teams;
  • SharePoint;
  • Entra ID;
  • reports;
  • permissions;
  • automation.; # Документувати scripts і приклади запуску.; Приклад:

Pester — популярний testing framework для PowerShell.;== Execution Policy ==

)

Verb-Noun

<pre>

Microsoft Learn пояснює, що PowerShell 7 є собою cross-platform, open-source і встановлюється side-by-side з Windows PowerShell 5.1.; Це істотно для безпечної автоматизації.; }

'''Splatting''' надає можливість передавати параметри через hashtable.; * '''Remoting''' — віддалене виконання PowerShell-команд.; Get-Content -Path $Path -ErrorAction Stop
PowerShell 7 функціонує на:
</div>

Але треба розуміти наслідки: script має змогу зупинитися там, де раніше продовжував роботу.; PowerShell має змогу бути невдалим вибором, якщо:
$response.users | Select-Object id, name

"Hello, $name" }

Get-Process
Where-Object LastWriteTime -lt (Get-Date).AddDays(-30)

Enter-PSSession

PowerShell має змогу викликати REST API.