- 🔹 Что такое PowerShell и зачем нужны команды PowerShell
- 📁 Основные команды PowerShell для работы с файлами и каталогами
- 📄 Get-ChildItem — просмотр файлов и каталогов
- 📦 Copy-Item — копирование файлов и папок
- 🔍 Основные команды PowerShell для поиска, фильтрации и работы с объектами
- 🔎 Where-Object — фильтрация данных
- 📌 Select-Object — выбор нужных свойств
- 📊 Sort-Object — сортировка данных
- 📋 Format-Table — форматирование в таблицу
- 📑 Format-List — вывод всех свойств объекта
- ⚙️ Команды PowerShell для управления процессами
- 📌 Get-Process — просмотр процессов
- 🛑 Stop-Process — завершение процесса
- 🧩 Основные команды PowerShell для управления службами Windows
- 📌 Get-Service — список служб
- ▶️ Start-Service — запуск службы
- ⏹ Stop-Service — остановка службы
- ⚙️ Set-Service — изменение параметров служб
- 🌐 Основные команды PowerShell для сети и диагностики
- 📡 Test-Connection — аналог ping с расширенными возможностями
- 🌐 Get-NetIPConfiguration — конфигурация сети
- 🔌 Get-NetTCPConnection — открытые TCP-подключения
- 🌐 Resolve-DnsName — продвинутый DNS-анализ
- 💽 Основные команды PowerShell для управления дисками и файлами
- 📁 Get-ChildItem — просмотр содержимого каталога
- 📦 Copy-Item — копирование файлов
- 📂 Move-Item — перемещение файлов и каталогов
- 🗑 Remove-Item — удаление файлов и каталогов
- 👤 Основные команды PowerShell для управления пользователями и группами
- 👤 New-LocalUser — создание нового пользователя
- 👥 Add-LocalGroupMember — добавление пользователя в группу
- 📋 Get-LocalUser — список локальных пользователей
- 🧩 Get-LocalGroup — список локальных групп
- 🔐 Основные команды PowerShell для безопасности и управления правами
- 🔒 Get-Acl — просмотр прав доступа (ACL)
- 🛠 Set-Acl — изменение прав доступа
- ⚠ Execution Policy — запуск скриптов PowerShell
- 📜 Основные команды PowerShell для работы с журналами событий
- 📘 Get-EventLog — просмотр классических журналов
- 📗 Get-WinEvent — современный просмотр логов
- 🖥 Основные команды PowerShell для диагностики и системной информации
- 💻 Get-ComputerInfo — подробная информация о ПК
- 🧠 Get-CimInstance Win32_Processor — информация о CPU
- 💾 Get-CimInstance Win32_PhysicalMemory — информация о RAM
- ⚡ Основные команды PowerShell для скриптов и автоматизации
- 📌 Переменные PowerShell
- 🔀 Условные конструкции (if)
- 🔁 Циклы PowerShell (for, foreach, while)
- ⚙️ Функции PowerShell
- 📄 Запуск PowerShell-скриптов
- 📚 Модули PowerShell — расширение возможностей
- 📦 Установка и управление модулями
- 📝 PowerShell Profile — персонализация терминала
- 🎨 Настройка профиля
- 🚀 Полезные готовые скрипты PowerShell
- 📁 Резервное копирование каталога
- 📡 Проверка доступности хоста
- 🛑 Завершение ресурсоёмких процессов
- 📌 Полезные ссылки
- ✔ Заключение
Это самый подробный и понятный справочник по командам PowerShell для Windows 10 и Windows 11. Здесь собраны основные команды PowerShell, примеры использования, синтаксис, полезные советы системного администратора, а также разбор продвинутых инструментов автоматизации Windows. Статья подходит для начинающих и опытных IT-специалистов.
Если вам также нужны команды CMD — обратите внимание на наш подробный справочник:
Основные команды CMD — Полный справочник Windows
.
🔹 Что такое PowerShell и зачем нужны команды PowerShell
PowerShell — это мощная среда автоматизации Windows, основанная на .NET и использующая командлеты (cmdlets) — небольшие встроенные команды для работы с операционной системой, сетью, файлами, службами и реестром. В отличие от CMD, команды PowerShell позволяют обрабатывать объекты, а не текст, что делает работу администратора быстрее и надёжнее.
- полный доступ к ядру Windows;
- объектная модель .NET;
- удалённое управление серверами;
- поддержка модулей и скриптов;
- сильный инструмент автоматизации для администраторов.
расширенные примеры. Каждая команда сопровождается расшифровкой параметров и рекомендациями администратора.
📁 Основные команды 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 — вывод только файлов или только папок.
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 возвращают не текст, а объекты .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-List — вывод всех свойств объекта
Get-Process | Format-List * Get-Service wuauserv | 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
⏹ Stop-Service — остановка службы
Stop-Service spooler Stop-Service wuauserv -Force
-Force — принудительная остановка.
⚠️ Осторожно: может вызвать сбои, если служба системная.
⚙️ Set-Service — изменение параметров служб
Set-Service -Name spooler -StartupType Automatic Set-Service -Name wuauserv -StartupType Disabled
✔ 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}
🖥 Основные команды PowerShell для диагностики и системной информации
PowerShell позволяет получать полную информацию о системе, железе, драйверах, BIOS, CPU, RAM и устройствах.
💻 Get-ComputerInfo — подробная информация о ПК
Get-ComputerInfo
🧠 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
📚 Модули PowerShell — расширение возможностей
Модули PowerShell расширяют возможности оболочки, добавляя новые команды PowerShell под конкретные задачи: Active Directory, Azure, VMware, SQL и многое другое.
📦 Установка и управление модулями
Find-Module -Name ActiveDirectory Install-Module -Name ActiveDirectory Import-Module ActiveDirectory Get-Module
📝 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 станет значительно проще и эффективнее.
Интересная статья! Завидую тем, кто уже уверенно владеет PowerShell. Сам недавно начал учить, но есть много нюансов.
Не могу понять, зачем так усложнять работу с командной строкой. Есть же более простые инструменты для автоматизации. PowerShell, конечно, мощный, но для новичков это, кажется, настоящая головоломка.
Отличная статья! PowerShell действительно мощный инструмент, особенно для автоматизации задач.