Команды PowerShell — полный справочник Windows

Корпоративный Яндекс Браузер
Содержание
  1. 🔹 Что такое PowerShell и зачем нужны команды PowerShell
  2. 📁 Основные команды PowerShell для работы с файлами и каталогами
  3. 📄 Get-ChildItem — просмотр файлов и каталогов
  4. 📦 Copy-Item — копирование файлов и папок
  5. 🔍 Основные команды PowerShell для поиска, фильтрации и работы с объектами
  6. 🔎 Where-Object — фильтрация данных
  7. 📌 Select-Object — выбор нужных свойств
  8. 📊 Sort-Object — сортировка данных
  9. 📋 Format-Table — форматирование в таблицу
  10. 📑 Format-List — вывод всех свойств объекта
  11. ⚙️ Команды PowerShell для управления процессами
  12. 📌 Get-Process — просмотр процессов
  13. 🛑 Stop-Process — завершение процесса
  14. 🧩 Основные команды PowerShell для управления службами Windows
  15. 📌 Get-Service — список служб
  16. ▶️ Start-Service — запуск службы
  17. ⏹ Stop-Service — остановка службы
  18. ⚙️ Set-Service — изменение параметров служб
  19. 🌐 Основные команды PowerShell для сети и диагностики
  20. 📡 Test-Connection — аналог ping с расширенными возможностями
  21. 🌐 Get-NetIPConfiguration — конфигурация сети
  22. 🔌 Get-NetTCPConnection — открытые TCP-подключения
  23. 🌐 Resolve-DnsName — продвинутый DNS-анализ
  24. 💽 Основные команды PowerShell для управления дисками и файлами
  25. 📁 Get-ChildItem — просмотр содержимого каталога
  26. 📦 Copy-Item — копирование файлов
  27. 📂 Move-Item — перемещение файлов и каталогов
  28. 🗑 Remove-Item — удаление файлов и каталогов
  29. 👤 Основные команды PowerShell для управления пользователями и группами
  30. 👤 New-LocalUser — создание нового пользователя
  31. 👥 Add-LocalGroupMember — добавление пользователя в группу
  32. 📋 Get-LocalUser — список локальных пользователей
  33. 🧩 Get-LocalGroup — список локальных групп
  34. 🔐 Основные команды PowerShell для безопасности и управления правами
  35. 🔒 Get-Acl — просмотр прав доступа (ACL)
  36. 🛠 Set-Acl — изменение прав доступа
  37. ⚠ Execution Policy — запуск скриптов PowerShell
  38. 📜 Основные команды PowerShell для работы с журналами событий
  39. 📘 Get-EventLog — просмотр классических журналов
  40. 📗 Get-WinEvent — современный просмотр логов
  41. 🖥 Основные команды PowerShell для диагностики и системной информации
  42. 💻 Get-ComputerInfo — подробная информация о ПК
  43. 🧠 Get-CimInstance Win32_Processor — информация о CPU
  44. 💾 Get-CimInstance Win32_PhysicalMemory — информация о RAM
  45. ⚡ Основные команды PowerShell для скриптов и автоматизации
  46. 📌 Переменные PowerShell
  47. 🔀 Условные конструкции (if)
  48. 🔁 Циклы PowerShell (for, foreach, while)
  49. ⚙️ Функции PowerShell
  50. 📄 Запуск PowerShell-скриптов
  51. 📚 Модули PowerShell — расширение возможностей
  52. 📦 Установка и управление модулями
  53. 📝 PowerShell Profile — персонализация терминала
  54. 🎨 Настройка профиля
  55. 🚀 Полезные готовые скрипты PowerShell
  56. 📁 Резервное копирование каталога
  57. 📡 Проверка доступности хоста
  58. 🛑 Завершение ресурсоёмких процессов
  59. 📌 Полезные ссылки
  60. ✔ Заключение

Это самый подробный и понятный справочник по командам PowerShell для Windows 10 и Windows 11. Здесь собраны основные команды PowerShell, примеры использования, синтаксис, полезные советы системного администратора, а также разбор продвинутых инструментов автоматизации Windows. Статья подходит для начинающих и опытных IT-специалистов.

Если вам также нужны команды CMD — обратите внимание на наш подробный справочник:

Основные команды CMD — Полный справочник Windows
.


🔹 Что такое PowerShell и зачем нужны команды PowerShell

PowerShell — это мощная среда автоматизации Windows, основанная на .NET и использующая командлеты (cmdlets) — небольшие встроенные команды для работы с операционной системой, сетью, файлами, службами и реестром. В отличие от CMD, команды PowerShell позволяют обрабатывать объекты, а не текст, что делает работу администратора быстрее и надёжнее.

Преимущества PowerShell:
  • полный доступ к ядру Windows;
  • объектная модель .NET;
  • удалённое управление серверами;
  • поддержка модулей и скриптов;
  • сильный инструмент автоматизации для администраторов.
💡 Важно: В статье мы будем использовать ключевые команды PowerShell, а также их
расширенные примеры. Каждая команда сопровождается расшифровкой параметров и рекомендациями администратора.

📁 Основные команды PowerShell для работы с файлами и каталогами

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

📄 Get-ChildItem — просмотр файлов и каталогов

Get-ChildItem
Get-ChildItem C:\Windows
Get-ChildItem -Path C:\Logs -Recurse
Get-ChildItem *.log
Полезные параметры:
-Recurse — поиск во всех подпапках;
-Filter — фильтрация по шаблону;
-File / -Directory — вывод только файлов или только папок.
💡 Совет: В отличие от CMD, команда PowerShell возвращает объекты System.IO.FileInfo,
с которыми можно работать в дальнейшем в конвейере (|).

📦 Copy-Item — копирование файлов и папок

Copy-Item -Path C:\Data -Destination D:\Backup -Recurse
Copy-Item file.txt C:\Temp\
Параметры:
-Recurse — копирование всех подпапок;
-Force — копирование скрытых и системных файлов;
-Verbose — подробный вывод хода операции.
⚠️ Опасность: Если конечная папка уже существует, PowerShell тихо перезапишет одноимённые файлы.



🔍 Основные команды PowerShell для поиска, фильтрации и работы с объектами

PowerShell — объектно-ориентированная система. Все команды PowerShell возвращают не текст, а объекты .NET. Благодаря этому вы можете легко фильтровать, группировать, сортировать и форматировать данные. Это одно из ключевых преимуществ PowerShell перед CMD.

🔎 Where-Object — фильтрация данных

Get-Process | Where-Object { $_.CPU -gt 50 }
Get-ChildItem C:\Logs | Where-Object { $_.Length -gt 1MB }
Get-Service | Where-Object { $_.Status -eq "Stopped" }
Основные операторы:
-eq — равно
-ne — не равно
-gt — больше
-lt — меньше
-match — соответствует регулярному выражению
💡 Совет администратора: Используйте Where-Object после команды, которая возвращает большие наборы данных.
Это позволяет быстро находить нужные элементы.

📌 Select-Object — выбор нужных свойств

Get-Process | Select-Object Name,CPU
Get-Service | Select-Object -First 10
Get-ChildItem | Select-Object Name,Length,LastWriteTime
Параметры:
-First — первые N элементов;
-Last — последние N элементов;
-Property — выбор конкретных свойств.

📊 Sort-Object — сортировка данных

Get-Process | Sort-Object CPU
Get-ChildItem | Sort-Object Length -Descending
Параметры:
-Descending — сортировка от большего к меньшему;
-Unique — исключить дубликаты.

📋 Format-Table — форматирование в таблицу

Get-Process | Format-Table Name,CPU,Id -AutoSize
Get-Service | Format-Table Status,Name,DisplayName
Параметры:
-AutoSize — автоматически подбирает ширину колонок;
-Wrap — переносит длинные строки.
⚠️ Важно: Format-Table нарушает «объектность» конвейера.
После него нельзя фильтровать объекты — только текст.

📑 Format-List — вывод всех свойств объекта

Get-Process | Format-List *
Get-Service wuauserv | Format-List *
Используйте Format-List *, чтобы увидеть полный набор свойств объекта.
Очень полезно при отладке сложных команд PowerShell.

⚙️ Команды PowerShell для управления процессами

Эти команды PowerShell позволяют управлять процессами Windows: находить, фильтровать, завершать, просматривать загруженность CPU и памятью.

📌 Get-Process — просмотр процессов

Get-Process
Get-Process chrome
Get-Process | Sort-Object CPU -Descending
Что показывает:
✔ PID процесса
✔ потребление CPU
✔ потребление RAM
✔ время запуска

🛑 Stop-Process — завершение процесса

Stop-Process -Name chrome -Force
Stop-Process -Id 4520
Параметры:
-Name — завершить по имени;
-Id — завершить по PID;
-Force — принудительное завершение.
⚠️ Осторожно: можно случайно завершить критичные системные процессы.



🧩 Основные команды PowerShell для управления службами Windows

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

📌 Get-Service — список служб

Get-Service
Get-Service wuauserv
Get-Service | Where-Object { $_.Status -eq 'Stopped' }
Ключевые свойства:
✔ Status — статус службы (Running/Stopped)
✔ Name — имя службы
✔ DisplayName — отображаемое имя

▶️ Start-Service — запуск службы

Start-Service wuauserv
Start-Service bits
Используйте, когда службы Windows Update, BITS или Spooler перестают работать.

⏹ Stop-Service — остановка службы

Stop-Service spooler
Stop-Service wuauserv -Force
Параметры:
-Force — принудительная остановка.
⚠️ Осторожно: может вызвать сбои, если служба системная.

⚙️ Set-Service — изменение параметров служб

Set-Service -Name spooler -StartupType Automatic
Set-Service -Name wuauserv -StartupType Disabled
StartupType:
✔ Automatic
✔ Manual
✔ Disabled

🌐 Основные команды PowerShell для сети и диагностики

PowerShell предоставляет расширенные сетевые модули, которые не доступны в CMD. Эти команды помогают анализировать подключение, порты, IP-конфигурацию, DNS и многое другое.

📡 Test-Connection — аналог ping с расширенными возможностями

Test-Connection google.com
Test-Connection 8.8.8.8 -Count 10
Test-Connection -ComputerName 192.168.1.1 -Quiet
Параметры:
-Count — количество запросов;
-Quiet — возвращает True/False.
Преимущество: работает стабильно, быстрее и точнее, чем ping.

🌐 Get-NetIPConfiguration — конфигурация сети

Get-NetIPConfiguration
Get-NetIPAddress | Where-Object { $_.AddressFamily -eq 'IPv4' }
Полная замена ipconfig /all — работает быстрее и точнее.

🔌 Get-NetTCPConnection — открытые TCP-подключения

Get-NetTCPConnection
Get-NetTCPConnection -LocalPort 443
Get-NetTCPConnection | Sort-Object State
Лучше и современнее, чем netstat.

🌐 Resolve-DnsName — продвинутый DNS-анализ

Resolve-DnsName google.com
Resolve-DnsName yandex.ru -Type MX
Полностью заменяет nslookup — показывает более подробные ответы.

💽 Основные команды PowerShell для управления дисками и файлами

PowerShell предоставляет гибкие инструменты для управления дисками, томами, файлами, атрибутами, ACL и журналами.

📁 Get-ChildItem — просмотр содержимого каталога

Get-ChildItem
Get-ChildItem C:\Logs -Recurse
Get-ChildItem -File | Where-Object { $_.Length -gt 1MB }
Полная замена dir с расширенными возможностями.

📦 Copy-Item — копирование файлов

Copy-Item C:\Data D:\Backup -Recurse
Copy-Item file.txt C:\Temp
Параметры:
-Recurse — копировать вложенные каталоги.
Пример: копирование профиля пользователя.

📂 Move-Item — перемещение файлов и каталогов

Move-Item C:\file.txt D:\Archive
Move-Item C:\Logs\*.log D:\Logs\

🗑 Remove-Item — удаление файлов и каталогов

Remove-Item file.txt
Remove-Item C:\Temp\* -Recurse -Force
⚠️ ОПАСНО: -Recurse -Force удаляет без подтверждения. Использовать осторожно.



👤 Основные команды PowerShell для управления пользователями и группами

PowerShell предоставляет гибкие инструменты для управления локальными пользователями и группами в Windows. Эти команды особенно полезны администраторам в корпоративных и домашних средах.

👤 New-LocalUser — создание нового пользователя

New-LocalUser -Name "Alex" -Password (Read-Host -AsSecureString) -Description "Тестовый пользователь"
Параметры:
-Password — принимает защищённую строку;
-Description — описание пользователя.

👥 Add-LocalGroupMember — добавление пользователя в группу

Add-LocalGroupMember -Group "Administrators" -Member "Alex"
Позволяет дать пользователю права администратора или включить в любую локальную группу.

📋 Get-LocalUser — список локальных пользователей

Get-LocalUser
Get-LocalUser | Where-Object { $_.Enabled -eq $false }
Полезно при проверке заблокированных или отключённых учётных записей.

🧩 Get-LocalGroup — список локальных групп

Get-LocalGroup
Get-LocalGroupMember Administrators

🔐 Основные команды PowerShell для безопасности и управления правами

Эти команды PowerShell позволяют работать с ACL, правами, политиками, настройками безопасности и сертификатами.

🔒 Get-Acl — просмотр прав доступа (ACL)

Get-Acl C:\Secret
Показывает владельца, группы и разрешения на объект.

🛠 Set-Acl — изменение прав доступа

$acl = Get-Acl "C:\Secret"
$permission = "Alex","FullControl","Allow"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($rule)
Set-Acl "C:\Secret" $acl
Используется для установки новых разрешений на файлы и каталоги.

⚠ Execution Policy — запуск скриптов PowerShell

Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned
Политики:
✔ Restricted — запрещено всё
✔ RemoteSigned — локальные скрипты можно запускать
✔ Unrestricted — запуск любых скриптов

📜 Основные команды PowerShell для работы с журналами событий

PowerShell предоставляет мощные инструменты для анализа журналов Windows (Event Log). Это полезно для диагностики ошибок, взломов, сбоев обновлений и системных проблем.

📘 Get-EventLog — просмотр классических журналов

Get-EventLog -LogName System -Newest 20
Get-EventLog -LogName Application | Where-Object { $_.EntryType -eq 'Error' }
Полезно для анализа системных сбоев и ошибок приложений.

📗 Get-WinEvent — современный просмотр логов

Get-WinEvent -LogName Security -MaxEvents 50
Get-WinEvent -FilterHashtable @{LogName="System"; Level=2}
Поддерживает фильтрацию по структуре, уровням событий и ID ошибок.

🖥 Основные команды PowerShell для диагностики и системной информации

PowerShell позволяет получать полную информацию о системе, железе, драйверах, BIOS, CPU, RAM и устройствах.

💻 Get-ComputerInfo — подробная информация о ПК

Get-ComputerInfo
Показывает: ОС, билд, BIOS, процессор, память, сетевые настройки, устройства.

🧠 Get-CimInstance Win32_Processor — информация о CPU

Get-CimInstance Win32_Processor

💾 Get-CimInstance Win32_PhysicalMemory — информация о RAM

Get-CimInstance Win32_PhysicalMemory



⚡ Основные команды PowerShell для скриптов и автоматизации

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

📌 Переменные PowerShell

$name = "Nik"
$cpu = Get-Process | Sort-Object CPU -Descending | Select-Object -First 1
Переменные упрощают хранение данных, путей, команд и их переиспользование.

🔀 Условные конструкции (if)

$cpuLoad = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue
if ($cpuLoad -gt 80) {
    Write-Host "Высокая нагрузка на CPU!" -ForegroundColor Red
}

🔁 Циклы PowerShell (for, foreach, while)

foreach ($file in Get-ChildItem C:\Logs\*.log) {
    Write-Host $file.Name
}

⚙️ Функции PowerShell

function Restart-Spooler {
    Stop-Service spooler -Force
    Start-Service spooler
    Write-Host "Очередь печати перезапущена!"
}

📄 Запуск PowerShell-скриптов

.\script.ps1
powershell.exe -File C:\Scripts\test.ps1
Если скрипт не запускается — проверьте ExecutionPolicy.

📚 Модули PowerShell — расширение возможностей

Модули PowerShell расширяют возможности оболочки, добавляя новые команды PowerShell под конкретные задачи: Active Directory, Azure, VMware, SQL и многое другое.

📦 Установка и управление модулями

Find-Module -Name ActiveDirectory
Install-Module -Name ActiveDirectory
Import-Module ActiveDirectory
Get-Module
Модули позволяют PowerShell работать с серверами, доменами, облаками и виртуальными средами.

📝 PowerShell Profile — персонализация терминала

Профиль PowerShell — это скрипт, который запускается автоматически при старте оболочки. Вы можете настроить свои алиасы, переменные, функции, модули и тему.

🎨 Настройка профиля

notepad $PROFILE
Путь профиля обычно:
C:\Users\USERNAME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
🧩 Полезные настройки профиля:
✔ алиасы для длинных команд
✔ цветной вывод ошибок
✔ автозагрузка модулей
✔ кастомные функции
✔ отображение времени выполнения команд

🚀 Полезные готовые скрипты PowerShell

📁 Резервное копирование каталога

$source = "C:\Data"
$dest = "D:\Backup"
Copy-Item $source $dest -Recurse

📡 Проверка доступности хоста

$host = "google.com"
if (Test-Connection $host -Quiet) {
    Write-Host "Хост доступен" -ForegroundColor Green
} else {
    Write-Host "Хост недоступен" -ForegroundColor Red
}

🛑 Завершение ресурсоёмких процессов

$proc = Get-Process | Sort-Object CPU -Descending | Select-Object -First 1
Stop-Process -Id $proc.Id -Force

📌 Полезные ссылки

Рекомендуем также изучить полный справочник команд CMD — он поможет лучше понять различия между оболочками Windows? а так же представляю вам официальную документацию Mircosoft:

➡ Полный справочник основных команд CMD — Наша статья с командами CMD

PowerShell Documentation — официальный портал с руководствами, справкой, примерами.

About Command Syntax — справка по синтаксису команд PowerShell learn.microsoft.com

Approved Verbs for Windows PowerShell Commands — список глаголов командлетов


✔ Заключение

Теперь у вас есть полный, современный и максимально полезный справочник по основным командам PowerShell. В статье собраны все важные инструменты: работа с файлами, сетью, службами, пользователями, системой, скриптами и модулями. Этот материал подходит как для начинающих, так и для опытных администраторов Windows. Продолжайте изучать PowerShell — и автоматизация Windows станет значительно проще и эффективнее.

Корпоративный Яндекс Браузер
Рейтинг
( Пока оценок нет )
Nik/ автор статьи

👨‍💻 Системный администратор с опытом более 15 лет. Занимается автоматизацией IT-процессов, оптимизацией систем и повышением стабильности инфраструктуры.

Понравилась статья? Поделиться с друзьями:
Комментарии: 3
  1. Александр Васильев

    Интересная статья! Завидую тем, кто уже уверенно владеет PowerShell. Сам недавно начал учить, но есть много нюансов.

  2. Марина Романова

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

  3. Иван Петров

    Отличная статья! PowerShell действительно мощный инструмент, особенно для автоматизации задач.

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: