*КУБ — полный комплекс облачных услуг!
PowerShell — это мощный инструмент автоматизации и управления для системных администраторов. Он позволяет запускать сценарии (скрипты), контролировать службы, пользователей, события, а также взаимодействовать с внешними системами и API. Это руководство покажет, как шаг за шагом использовать PowerShell для реальных задач.
Разрешите выполнение скриптов, выполнив:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Создайте файл Hello.ps1 и вставьте в него:
Write-Host "Hello, PowerShell automation!"
Get-Date
$env:USERNAME
Запустите скрипт командой:
.\Hello.ps1

PowerShell основан на понятной и лаконичной структуре:
Используйте редактор PowerShell ISE или Visual Studio Code с расширением PowerShell для подсветки и автодополнения.

Рекомендуется придерживаться следующих принципов:
param([int]$Threshold = 80)
$mem = Get-CimInstance Win32_OperatingSystem |
Select @{Name='FreeGB'; Expression={[math]::Round($_.FreePhysicalMemory/1MB,2)}}
if ($mem.FreeGB -lt $Threshold) {
Write-Warning "Memory low: $($mem.FreeGB) GB"
} else {
Write-Host "Memory OK: $($mem.FreeGB) GB"
}
Сценарий проверяет, достаточно ли свободной памяти, и выводит предупреждение при её нехватке.
Вы можете запускать скрипты PowerShell по расписанию:
Укажите:
powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\Hello.ps1"
Локальные пользователи:
$pass = Read-Host -AsSecureString "Введите пароль"
New-LocalUser -Name "TestUser" -Password $pass -FullName "Тестовый пользователь"
Disable-LocalUser -Name "TestUser"
Remove-LocalUser -Name "TestUser"
Active Directory (с CSV-файлом):
Import-Csv users.csv | ForEach-Object {
New-ADUser -Name $_.Name -SamAccountName $_.Login `
-AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) -Enabled $true
}
Get-WinEvent -LogName System -MaxEvents 10 |
Format-Table TimeCreated, Id, Message
Фильтрация:
Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1000; StartTime=(Get-Date).AddDays(-1)}
Экспорт в CSV:
... | Export-Csv "C:\Logs\app.csv" -NoTypeInformation
$src = "C:\Important"
$dst = "D:\Backup\Backup_$(Get-Date -Format 'yyyyMMdd').zip"
Compress-Archive -Path "$src\*" -DestinationPath $dst
Add-Content "D:\Backup\backup_log.txt" "Backup: $(Get-Date) → $dst"
Этот скрипт создает архив из папки и регистрирует факт резервного копирования.
Send-MailMessage -From "admin@domain.com" -To "team@company.com" `
-Subject "Backup report" -Body "Backup completed successfully." `
-SmtpServer "smtp.domain.com" -Attachments "D:\Backup\*.zip"
Пример для GitHub Actions:
- name: Run PowerShell script
run: pwsh ./monitor.ps1
PowerShell — это не просто оболочка, а универсальный инструмент автоматизации. Реальные примеры резервного копирования, удаления старых файлов и запуска программ помогают быстро освоить основы. Важно: всегда тестируйте скрипты с параметром -WhatIf или в тестовой среде, чтобы избежать нежелательных изменений.