
PowerShell — это мощный язык сценариев и оболочка командной строки, встроенная в Windows. Он позволяет автоматизировать рутинные задачи, управлять системой, работать с Active Directory и выполнять тысячи операций, которые вручную заняли бы часы. В этом руководстве для начинающих вы узнаете: как создать и запустить скрипт PowerShell, как разрешить выполнение скриптов, как писать простые и полезные скрипты, а также как автоматизировать повседневные задачи.
Краткий чек-лист: что нужно знать перед началом работы с PowerShell
- Что такое PowerShell? — командная оболочка и язык сценариев для автоматизации.
- Какое расширение у PowerShell скрипта? —
.ps1. - Как запустить скрипт PowerShell? — через консоль PowerShell или PowerShell ISE.
- Почему PowerShell не запускает скрипт? — по умолчанию выполнение скриптов запрещено. Нужно изменить политику выполнения.
- Как разрешить выполнение скриптов? — командой
Set-ExecutionPolicy RemoteSigned. - Как создать скрипт? — сохраните команды в файл с расширением
.ps1.
Часть 1: Что такое PowerShell и зачем он нужен
PowerShell — это не просто «командная строка на стероидах». Это полноценная среда для автоматизации управления Windows и приложениями. В отличие от классической командной строки (cmd), PowerShell работает не с текстом, а с объектами. Это значит, что результат любой команды можно передать другой команде, отфильтровать, отсортировать или сохранить.
Где используется PowerShell?
- Администрирование Windows — управление пользователями, дисками, службами, реестром.
- Active Directory — создание пользователей, групп, изменение атрибутов.
- Exchange, SharePoint, Azure — управление облачными и корпоративными сервисами.
- Автоматизация рутинных задач — резервное копирование, очистка дисков, мониторинг.
- Работа с файлами и папками — массовое переименование, копирование, удаление.
Часть 2: Первые шаги — запуск PowerShell
Прежде чем писать скрипты, нужно научиться запускать PowerShell. Есть несколько способов:
- Пуск → Windows PowerShell → Windows PowerShell (обычный режим).
- Пуск → Windows PowerShell → Windows PowerShell (Администратор) — для выполнения команд, требующих прав администратора.
- Win + R → введите
powershell→ Enter. - В проводнике Shift + ПКМ по папке → «Открыть окно PowerShell здесь».
После запуска вы увидите окно с синим фоном (по умолчанию) и приглашение командной строки: PS C:\Users\ИмяПользователя>.
Часть 3: Синтаксис PowerShell — основные команды и понятия
PowerShell использует командлеты (cmdlet) — глаголы-существительные, разделенные дефисом. Например: Get-Process, Stop-Service, Set-Location.
Базовые командлеты для знакомства
| Команда | Описание |
|---|---|
Get-Help | Получить справку по команде (например, Get-Help Get-Process). |
Get-Command | Показать все доступные команды. |
Get-Process | Список запущенных процессов. |
Get-Service | Список служб Windows. |
Get-ChildItem | Содержимое папки (аналог dir или ls). |
Set-Location | Сменить текущую папку (аналог cd). |
Copy-Item | Копирование файлов и папок. |
Remove-Item | Удаление файлов и папок. |
Get-Content | Просмотр содержимого текстового файла. |
Out-File | Сохранить вывод в файл. |
Примеры простых команд
# Показать все процессы, отсортированные по использованию памяти
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
# Показать все службы, которые остановлены
Get-Service | Where-Object {$_.Status -eq "Stopped"}
# Найти все файлы больше 1 ГБ в папке C:\Users
Get-ChildItem -Path C:\Users -Recurse -File | Where-Object {$_.Length -gt 1GB}
Часть 4: Создание первого скрипта PowerShell
Скрипт PowerShell — это текстовый файл с расширением .ps1, содержащий последовательность команд.
Шаг 1. Создайте файл скрипта
Самый простой способ — использовать PowerShell ISE (Integrated Scripting Environment) или любой текстовый редактор (Блокнот, VS Code).
- Нажмите Пуск, найдите Windows PowerShell ISE.
- Введите команды в верхней части окна (редактор скриптов).
- Нажмите Файл → Сохранить как.
- Укажите имя файла, например first-script.ps1.
Шаг 2. Напишите простой скрипт
# Мой первый скрипт PowerShell
Write-Host "Привет, мир!" -ForegroundColor Green
# Получить текущую дату и время
$currentDate = Get-Date
Write-Host "Текущая дата и время: $currentDate"
# Показать свободное место на диске C:
$drive = Get-PSDrive -Name C
Write-Host "Свободно на диске C: $([math]::Round($drive.Free/1GB, 2)) ГБ"
Шаг 3. Сохраните скрипт
Сохраните файл с расширением .ps1. Например: C:\Scripts\first-script.ps1.
Часть 5: Как запустить скрипт PowerShell
После создания скрипта возникает главный вопрос: как запустить скрипт PowerShell?
Способ 1. Запуск из консоли PowerShell
- Откройте PowerShell.
- Перейдите в папку со скриптом:
cd C:\Scripts. - Запустите скрипт:
.\first-script.ps1.
Обратите внимание: .\ перед именем файла обязателен. Это указывает PowerShell на текущую папку.
Способ 2. Запуск скрипта из командной строки (cmd)
powershell -ExecutionPolicy Bypass -File "C:\Scripts\first-script.ps1"
Способ 3. Запуск из PowerShell ISE
Откройте файл в PowerShell ISE и нажмите F5 или зеленую кнопку «Выполнить скрипт».
Способ 4. Запуск скрипта от имени администратора
Для многих операций требуются права администратора. Чтобы запустить скрипт PowerShell от имени администратора:
- Нажмите правой кнопкой мыши на PowerShell → «Запуск от имени администратора».
- Затем выполните
.\first-script.ps1.
Часть 6: Политика выполнения скриптов — почему PowerShell не запускает скрипты
Если при запуске скрипта вы видите ошибку:
File C:\Scripts\first-script.ps1 cannot be loaded because running scripts is disabled on this system.
Это значит, что выполнение скриптов PowerShell запрещено по умолчанию для защиты от вредоносного кода.
Какие бывают политики выполнения
| Политика | Описание |
|---|---|
| Restricted | Выполнение скриптов запрещено (значение по умолчанию). |
| AllSigned | Разрешены только подписанные скрипты. |
| RemoteSigned | Разрешены локальные скрипты; удаленные скрипты должны быть подписаны. |
| Unrestricted | Разрешены все скрипты, но перед запуском удаленных выдается предупреждение. |
| Bypass | Никаких ограничений — всё выполняется без предупреждений. |
Как разрешить выполнение скриптов PowerShell
Чтобы разрешить скрипты PowerShell, выполните в консоли (от имени администратора):
Set-ExecutionPolicy RemoteSigned
Подтвердите изменение, нажав Y (Yes). После этого выполнение скриптов PowerShell станет возможным.
Если нужно временно разрешить выполнение скриптов PowerShell только для одного запуска:
powershell -ExecutionPolicy Bypass -File "C:\Scripts\script.ps1"
Чтобы проверить текущую политику выполнения:
Get-ExecutionPolicy
Часть 7: Переменные, условия и циклы в PowerShell
Для создания полезных скриптов нужно понимать базовые конструкции.
Переменные
Переменные в PowerShell начинаются с символа $.
$name = "Иван"
$age = 30
$currentDate = Get-Date
# Вывод переменных
Write-Host "Имя: $name, Возраст: $age"
Write-Host "Сегодня: $currentDate"
Условия (if/else)
$diskFree = (Get-PSDrive -Name C).Free / 1GB
if ($diskFree -lt 10) {
Write-Host "Внимание! На диске C: осталось менее 10 ГБ" -ForegroundColor Red
} elseif ($diskFree -lt 20) {
Write-Host "На диске C: осталось менее 20 ГБ" -ForegroundColor Yellow
} else {
Write-Host "На диске C: достаточно свободного места" -ForegroundColor Green
}
Циклы
# Цикл for
for ($i = 1; $i -le 5; $i++) {
Write-Host "Итерация номер $i"
}
# Цикл foreach (обработка списка процессов)
$processes = Get-Process | Select-Object -First 5
foreach ($proc in $processes) {
Write-Host "Процесс: $($proc.Name), Память: $($proc.WorkingSet)"
}
# Цикл while
$count = 0
while ($count -lt 3) {
Write-Host "Счетчик: $count"
$count++
}
Часть 8: Полезные скрипты PowerShell для начинающих
Скрипт 1: Очистка временных файлов
# Очистка временных файлов Windows
Write-Host "Начинаю очистку временных файлов..." -ForegroundColor Yellow
# Удаление временных файлов пользователя
$tempFolders = @(
"$env:TEMP",
"$env:WINDIR\Temp",
"$env:WINDIR\Prefetch"
)
foreach ($folder in $tempFolders) {
if (Test-Path $folder) {
Write-Host "Очищаю: $folder"
Remove-Item "$folder\*" -Recurse -Force -ErrorAction SilentlyContinue
}
}
Write-Host "Очистка завершена!" -ForegroundColor Green
Скрипт 2: Резервное копирование папки
# Скрипт резервного копирования
$source = "C:\Users\$env:USERNAME\Documents"
$destination = "D:\Backup\Documents_$(Get-Date -Format 'yyyy-MM-dd')"
# Создаем папку назначения, если её нет
if (-not (Test-Path $destination)) {
New-Item -ItemType Directory -Path $destination -Force | Out-Null
}
# Копируем файлы
Write-Host "Копирование из $source в $destination" -ForegroundColor Yellow
Copy-Item -Path $source\* -Destination $destination -Recurse -Force
Write-Host "Резервное копирование завершено!" -ForegroundColor Green
Скрипт 3: Создание пользователя в Active Directory (для администраторов)
# Скрипт создания пользователя в AD
# Требуется модуль Active Directory
Import-Module ActiveDirectory
$firstName = Read-Host "Введите имя пользователя"
$lastName = Read-Host "Введите фамилию"
$samAccountName = Read-Host "Введите логин"
$userParams = @{
Name = "$firstName $lastName"
GivenName = $firstName
Surname = $lastName
SamAccountName = $samAccountName
UserPrincipalName = "$samAccountName@domain.local"
AccountPassword = (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)
Enabled = $true
Path = "OU=Users,DC=domain,DC=local"
}
New-ADUser @userParams
Write-Host "Пользователь $firstName $lastName создан" -ForegroundColor Green
Скрипт 4: Отправка письма через PowerShell
# Скрипт отправки письма на почту
$smtpServer = "smtp.gmail.com"
$smtpPort = 587
$from = "your-email@gmail.com"
$to = "recipient@example.com"
$subject = "Результат выполнения скрипта"
$body = "Скрипт успешно выполнен в $(Get-Date)"
$credentials = Get-Credential -UserName $from
Send-MailMessage -SmtpServer $smtpServer -Port $smtpPort -UseSsl `
-From $from -To $to -Subject $subject -Body $body `
-Credential $credentials
Write-Host "Письмо отправлено" -ForegroundColor Green
Часть 9: Автоматизация скриптов через планировщик задач
Чтобы скрипт выполнялся автоматически (например, каждую ночь), используйте планировщик задач Windows.
Как создать задачу в планировщике
- Откройте Планировщик задач (taskschd.msc).
- Нажмите Создать задачу.
- На вкладке Триггеры — создайте расписание (например, ежедневно в 02:00).
- На вкладке Действия — создайте действие:
- Программа:
powershell.exe - Аргументы:
-ExecutionPolicy Bypass -File "C:\Scripts\backup.ps1"
- Программа:
- На вкладке Условия — снимите галочку «Запускать только при питании от электросети», если нужно.
- Нажмите ОК.
Теперь скрипт будет выполняться по расписанию. Это идеально для скриптов резервного копирования, очистки дисков и мониторинга.
Часть 10: Часто задаваемые вопросы о PowerShell скриптах
Вопрос: Какое расширение у PowerShell скрипта?
Ответ: Расширение файла скрипта — .ps1. Например: myscript.ps1.
Вопрос: Как запустить скрипт PowerShell из командной строки (cmd)?
Ответ: Используйте команду: powershell -ExecutionPolicy Bypass -File "C:\путь\к\скрипту.ps1".
Вопрос: Почему PowerShell не запускает скрипт?
Ответ: По умолчанию выполнение скриптов запрещено. Выполните Set-ExecutionPolicy RemoteSigned от имени администратора.
Вопрос: Как передать параметры в скрипт PowerShell?
Ответ: Объявите параметры в начале скрипта:
param(
[string]$Name,
[int]$Count = 10
)
Write-Host "Имя: $Name, Количество: $Count"
Запуск с параметрами: .\script.ps1 -Name "Иван" -Count 5.
Вопрос: Как остановить выполнение скрипта PowerShell?
Ответ: Нажмите Ctrl + C в окне консоли. В коде можно использовать exit или return.
Вопрос: Как подписать скрипт PowerShell?
Ответ: Для подписи скриптов требуется сертификат. Используйте командлет Set-AuthenticodeSignature. Для большинства начинающих достаточно политики RemoteSigned.
Вопрос: Где хранить скрипты PowerShell?
Ответ: Рекомендуется создать отдельную папку, например C:\Scripts, и добавить её в переменную окружения PATH или просто переходить в неё перед запуском.
Заключение: с чего начать изучение PowerShell
PowerShell — это навык, который многократно окупается, особенно если вы системный администратор или разработчик. Начать очень просто:
- Откройте PowerShell и начните выполнять простые команды:
Get-Process,Get-Service,Get-ChildItem. - Создайте свой первый скрипт — сохраните несколько команд в файл
.ps1и запустите его. - Изучите
Get-Help— это лучший способ узнать о любой команде. - Автоматизируйте рутинные задачи — начните с очистки диска или резервного копирования.
- Используйте планировщик задач для запуска скриптов по расписанию.
PowerShell — это не просто инструмент, это целая экосистема для управления Windows и не только. Освоив основы, вы сможете создавать полезные скрипты PowerShell, которые сэкономят вам часы ручной работы.
















Добавить комментарий