ym97433607
Полезные скрипты PowerShell для Windows 10 и 11: примеры, создание и запуск

Полезные скрипты PowerShell для Windows

11 минут на чтение
30 сентября 2025

Обычные пользователи управляют компьютером мышкой: кликают по папкам, перетаскивают файлы, нажимают кнопки в программах. Но есть и другой способ  командная строка, где вместо кликов пишут текстовые команды.

PowerShell  это продвинутая командная строка Windows, которая понимает не только простые команды, но и целые программы. Она экономит время и упрощает жизнь администратору или пользователю.

PowerShell объединяет в себе язык программирования и командную оболочку. Он позволяет управлять системой, запускать службы, работать с файлами и сетевыми настройками. В статье мы разберём, как работать с PowerShell при помощи скриптов.

Что такое PowerShell скрипты и зачем они нужны

Главная сила PowerShell  в скриптах для ПК. Скрипт PowerShell  это файл с набором команд, которые выполняются последовательно. Такой файл помогает автоматизировать рутинные действия: очистку временных файлов, создание резервных копий, настройку прав доступа или массовую установку программ.

Зачем это нужно:

  • экономит время на повторяющихся задачах;
  • снижает количество ошибок  скрипт всегда выполняется одинаково;
  • даёт возможность централизованно управлять компьютерами в сети.

Основные понятия и файлы PowerShell

Чтобы работать со скриптами, нужно знать несколько базовых терминов:

  • Командлеты (cmdlets)  это встроенные команды, например, Get-Process или Set-ExecutionPolicy. Эти интересные команды PowerShell позволяют управлять процессами, файлами, сетевыми настройками и многим другим.
  • Пайплайн (pipeline)  возможность передавать результат одной команды в другую. Это экономит время и делает код чище.
  • Модули  набор командлетов, объединённых в пакет. Например, модуль для работы с Active Directory.
  • Скрипт (.ps1)  обычный текстовый файл, в котором записаны команды. Запускать его можно из PowerShell или даже через командную строку.

PowerShell работает через виртуальную машину .NET и имеет доступ ко всем её библиотекам. Благодаря этому скрипты могут управлять почти любым компонентом Windows: от системных настроек до пользовательских приложений.

Как создать и сохранить скрипт PowerShell

Создать скрипт PowerShell очень просто: это обычный текстовый файл с расширением .ps1. Всё, что нужно  написать набор команд и сохранить их в таком файле.

  1. Откройте любой текстовый редактор (например, «Блокнот» или Visual Studio Code).
  2. Введите команды, которые хотите автоматизировать. Например: Get-Process | Sort-Object CPU -Descending | Select-Object -First 10. Этот скрипт покажет 10 процессов, которые сильнее всего нагружают процессор.
  3. Сохраните файл с расширением .ps1, например TopCPU.ps1.
  4. Готово  это и есть ваш первый PowerShell script.

Совет: для подсветки синтаксиса и удобства редактирования лучше использовать специальные редакторы  например, VS Code. А если нужно быстро написать скрипт для конкретной задачи или исправить ошибку в коде, поможет нейросеть GigaChat  опишите задачу, и она предложит готовое решение.

Как запустить скрипт PowerShell

Запускать скрипт PowerShell можно несколькими способами.

  • Через сам PowerShell

Откройте PowerShell.

Перейдите в папку со скриптом: cd C:\Scripts

Выполните файл: .\TopCPU.ps1

  • Из командной строки Windows (CMD)

Если вы хотите выполнить скрипт прямо из CMD, используйте:

powershell -ExecutionPolicy Bypass -File «C:\Scripts\TopCPU.ps1»

  • Двойным кликом

Этот вариант работает, если политика безопасности позволяет запуск скриптов. Но чаще всего администраторы используют первый способ, так как он надёжнее.

Важно: по умолчанию Windows может блокировать выполнение .ps1-файлов из соображений безопасности. Чтобы разрешить запуск, в PowerShell нужно изменить политику выполнения:

Set-ExecutionPolicy RemoteSigned

Эта настройка позволяет запускать локальные скрипты и только те загруженные из интернета, у которых есть цифровая подпись.

Полезные и универсальные скрипты для Windows

Удобство PowerShell  в том, что короткие скрипты решают важные задачи. Публикуем 7 универсальных скриптов, которые пригодятся и сисадмину, и обычному пользователю. Эти скрипты можно комбинировать, добавлять в планировщик задач или объединять в один файл для автоматизации рутинных процессов.

1. Очистка временных файлов

Remove-Item -Path «C:\Windows\Temp\*» -Recurse -Force Remove-Item -Path «$env:TEMP\*» -Recurse -Force

Освобождает место, удаляя временные файлы из системных папок.

2. Резервное копирование папки

$source = «C:\Users\Public\Documents» $destination = «D:\Backup» Copy-Item $source -Destination $destination -Recurse

Копирует содержимое указанной папки на другой диск.

3. Мониторинг использования процессора

Get-Process | Sort-Object CPU -Descending | Select-Object -First 5

Показывает топ-5 процессов, которые сильнее всего нагружают процессор.

4. Список программ, установленных в системе

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher | Format-Table -AutoSize

Удобно для аудита ПО или подготовки к миграции.

5. Автоматическое завершение «зависших» процессов

Get-Process | Where-Object { $_.Responding -eq $false } | Stop-Process -Force

Завершает процессы, которые не отвечают.

6. Проверка доступности хостов (Ping)

Test-Connection -ComputerName google.com,yandex.ru -Count 2

Простой способ проверить интернет и доступность внешних ресурсов.

7. Создание списка пользователей системы

Get-LocalUser | Select-Object Name, Enabled

Показывает локальных пользователей Windows и их статус.

Советы по написанию и оптимизации скриптов

  • Пишите функциями, а не «простынями». Выносите повторяющиеся действия в function, задавайте осмысленные имена и добавляйте param() в начале файла. Так один скрипт PowerShell превращается в переиспользуемый модуль.
  • Валидация на входе. Используйте атрибуты ValidateSet, ValidateRange, ValidateScript  так получится поймать ошибку раньше.
  • Пишите в лог и на экран по-разному. Для консоли  кратко (Write-Host только для UX), для логов  подробно (Write-Verbose, Write-Information). Включайте детальный режим флагом -Verbose.
  • Единый формат ошибок. Ловите исключения через try { ... } catch { ... } finally { ... }, задавайте $ErrorActionPreference = ’Stop’ внутри критичных блоков.
  • Минимизируйте внешние зависимости. По возможности опирайтесь на стандартные модули. Если модуль внешний  проверяйте версию (RequiredVersion) и фиксируйте её в RequiredModules.
  • Профилируйте узкие места. Для медленных участков используйте Measure-Command, кешируйте результаты операций (например, один раз считывайте реестр/файлы).
  • **Работайте «по объектам», а не по строкам. Сила PowerShell  в пайплайне объектов. При этом PowerShell может обращаться к другим языкам: например, выполнять .NET-код или даже запускать отдельные файлы JavaScript.
  • Не читайте «всё и сразу». Фильтруйте на стороне источника: вместо Get-EventLog | Where-Object ... используйте параметры командлета (-After, -Newest, -LogName), чтобы сократить объём данных.
  • Добавляйте «сухой прогон». Режим -WhatIf и -Confirm:$true для командлетов, которые что-то меняют (Remove-Item, Stop-Process)  быстро проверите, что удалится или остановится.
  • Документируйте прямо в коде. Комментарии-помощники <# .SYNOPSIS ... .PARAMETER ... .EXAMPLE ... #> отражаются в Get-Help  это бесплатная документация для будущего вас.
  • Если сомневаетесь в правильности синтаксиса, используйте GigaChat как ассистента. Он поможет отладить скрипт, исправить ошибки и предложить оптимизацию.

Часто встречающиеся ошибки и их исправление

1) Скрипт не запускается из-за политики (ExecutionPolicy)

Симптом:

"*.ps1 cannot be loaded because running scripts is disabled on this system.«

Причина: политика выполнения блокирует файлы.

Решение:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

Если нужно единоразово обойти политику при запуске из CMD/батника:

powershell -ExecutionPolicy Bypass -File «C:\Scripts\Run.ps1»

Совет: не ставьте Unrestricted для всей системы без необходимости.

2) «Нет прав» / требуется запуск от администратора

Симптом: команды для служб/реестра/установки ПО падают с Access is denied.

Решение: открыть PowerShell Run as Administrator. Внутри скрипта корректно проверяйте права:

$IsAdmin = ([Security.Principal.WindowsPrincipal]
[Security.Principal.WindowsIdentity]::GetCurrent()
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $IsAdmin) { throw «Нужен запуск от имени администратора.» }

3) Неправильные пути и пробелы в именах

Симптом: «Cannot find path...», особенно при пробелах/символах.

Решение: используйте -LiteralPath и кавычки:

Remove-Item -LiteralPath «C:\Program Files\App\logs\*» -Recurse -Force

Избегайте конкатенации строк для путей; используйте Join-Path:

$log = Join-Path $env:ProgramData «My App\log.txt»

4) Сбой из-за кодировки/русских букв

Симптом: «кракозябры» в CSV/логах, ошибки парсинга.

Решение: при экспорте/импорте задавайте кодировку:

Export-Csv report.csv -NoTypeInformation -Encoding UTF8
Get-Content data.txt -Encoding UTF8

5) Скрипт «молчит»

Симптом: ничего не происходит, непонятно, где падает.

Решение: добавьте вербозный вывод и строгие ошибки:

$ErrorActionPreference = ’Stop’
Write-Verbose «Старт задачи...» -Verbose
try { <ваш код> } catch { Write-Error $_; throw }

Для замера «тормозов»:

Measure-Command { <подозрительный блок> }

6) Разные версии PowerShell/модулей

Симптом: «Command not found», методы недоступны на другой машине.

Решение: проверяйте версии и фиксируйте зависимости:

$PSVersionTable.PSVersion
Get-Module -ListAvailable | Select Name,Version
Install-Module SomeModule -RequiredVersion 2.1.0

Если скрипт должен идти и на Windows PowerShell 5.1, и на PowerShell 7  ограждайте платформоспецифичные места:

if ($IsWindows) { # Windows-only код } else { # кроссплатформенная ветка }

Заключение

PowerShell уже давно стал не просто расширенной версией командной строки, а мощным инструментом администрирования и автоматизации в Windows. С его помощью можно решить десятки задач  от очистки временных файлов до развёртывания сервисов. Даже самый простой скрипт PowerShell экономит время и силы: один раз написали  и задача выполняется одинаково на любом компьютере.

Сильная сторона PowerShell  это работа с объектами и богатая экосистема командлетов. А благодаря поддержке модулей и интеграции с .NET он подходит не только для Windows, но и для кроссплатформенной среды (PowerShell 7). Использовать powershell script стоит не только сисадминам, но и тем, кто часто повторяет одни и те же действия в системе.

Главное  помнить про безопасность, документировать свой код и отлаживать его в тестовой среде. Тогда PowerShell станет надёжным инструментом для решения повседневных задач.

FAQ

Как создать и запустить скрипт PowerShell?
Создайте текстовый файл с расширением .ps1, запишите туда команды и выполните его в консоли PowerShell командой .\имя_файла.ps1.
Как запустить скрипт PowerShell из командной строки (CMD)?
Используйте: powershell -ExecutionPolicy Bypass -File «C:\Scripts\test.ps1»
Какие есть универсальные скрипты для Windows?
Например: очистка временных файлов, резервное копирование папок, проверка доступности хостов, выгрузка списка пользователей и программ.
Что делать, если скрипт PowerShell не запускается?
Скорее всего, дело в политике выполнения. Разрешить запуск можно командой: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Где хранить свои скрипты?
Обычно их складывают в отдельную папку, например C:\Scripts. Для удобства можно добавить этот путь в переменную окружения PATH.
Почему стоит использовать именно PowerShell, а не CMD?
Потому что PowerShell работает с объектами, а не только со строками. Это упрощает фильтрацию, сортировку, экспорт данных и делает разработку скриптов более гибкой.
Оцените статью
Ещё по теме
СберБанк обрабатывает Cookies с целью персонализации сервисов и для того, чтобы пользоваться сайтом было удобнее. Вы можете запретить обработку Cookies в настройках браузера. Пожалуйста, ознакомьтесь с политикой использования Cookies
Подробно рассказываем, как CберБанк обрабатывает и защищает ваши данные на странице Sber Bank Privacy