Набор команд и инструкций для настройки и обслуживания Windows через PowerShell
Большинство команд на этой странице совместимы со стандартным Windows PowerShell 5.1, который встроен в Windows 10 и 11. Чтобы проверить вашу версию, выполните команду $PSVersionTable
.
Однако, для работы некоторых современных и производительных утилит, таких как "Сканер ЛВС с отчетом", требуется PowerShell 7.2 или новее. Рекомендуется установить последнюю версию для полной совместимости со всеми скриптами.
Большинство команд на этой странице требуют прав администратора. Выберите любой удобный способ:
Win
(с логотипом Windows) или откройте меню «Пуск».PowerShell
.Win + X
.Win + R
, чтобы открыть окно "Выполнить".powershell
.Ctrl + Shift
и нажмите Enter
.Эти команды используют Диспетчер пакетов Windows (winget) для установки последней версии PowerShell. Этот способ рекомендуется Microsoft.
Эта команда установит последнюю официальную версию PowerShell.
winget install --id Microsoft.PowerShell --source winget
Используйте эту команду, чтобы получить доступ к новейшим функциям, которые еще находятся в разработке.
winget install --id Microsoft.PowerShell.Preview --source winget
Этот скрипт скачает и установит последнюю стабильную версию PowerShell 7 с GitHub. Требует PowerShell 5.1 или выше.
# Команда для принудительного использования современного протокола шифрования (TLS 1.2)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# --- Основной скрипт установки ---
$ProgressPreference = 'SilentlyContinue'
try {
$apiUrl = 'https://api.github.com/repos/PowerShell/PowerShell/releases/latest'
$asset = (Invoke-RestMethod -Uri $apiUrl).assets | `
Where-Object { $_.name -like 'PowerShell-*-win-x64.msi' } | Select-Object -First 1
if (-not $asset) { throw 'Не удалось найти MSI-файл для x64 в последнем релизе.' }
$downloadUrl = $asset.browser_download_url
$msiPath = Join-Path $env:TEMP $asset.name
Write-Host "Скачиваю $($asset.name)..."
Invoke-WebRequest -Uri $downloadUrl -OutFile $msiPath
Write-Host "Запускаю тихую установку..."
Start-Process msiexec.exe -ArgumentList "/i `"$msiPath`" /quiet" -Wait
Remove-Item $msiPath -ErrorAction SilentlyContinue
Write-Host "Готово! Чтобы проверить, откройте новый терминал и выполните: pwsh --version" -ForegroundColor Green
}
catch {
Write-Host "Произошла ошибка: $($_.Exception.Message)" -ForegroundColor Red
}
Если после переустановки Windows у вас нет доступа к файлам ("Отказано в доступе"), следуйте этому руководству. Все команды нужно выполнять в PowerShell, запущенном от имени Администратора.
Этот универсальный скрипт решает большинство проблем с правами. Он меняет владельца и предоставляет доступ всем пользователям, работая на Windows с любым языком.
Если основной скрипт выдал ошибку, это значит, что у папки есть более глубокие проблемы. Используйте инструменты ниже, чтобы их исправить, а затем снова попробуйте выполнить Шаг 1.
Иногда папки имеют скрытый флаг "Только для чтения", который блокирует любые изменения. Эта команда принудительно его снимает.
Данный способ применяется, если у папки "сломан" механизм наследования прав от родителя. Команда полностью сбрасывает все старые, "застрявшие" права.
Создайте разрешающее правило в брандмауэре Windows, чтобы открыть порт для приложений или игр.
Эта утилита показывает размеры всех подпапок в указанной директории, сортируя их от самой большой к самой маленькой. Помогает быстро найти, что занимает место на диске.
Эта утилита поможет найти файлы по имени, расширению или тексту внутри них. Если поле "Текст для поиска" оставить пустым, будет выполнен поиск только по имени файла.
Эта утилита создает и открывает HTML-отчет. В отчете: клик по IP-адресу откроет его в новой вкладке
Показывает, какие DNS используются для каждого сетевого подключения.
Get-DnsClient | Select-Object InterfaceAlias, ServerAddresses
Очищает локальный кэш DNS. Полезно, если сайты открываются неправильно после смены DNS.
Clear-DnsClientCache
Сбрасывает настройки DNS для указанного адаптера на "Получать автоматически" (по DHCP).
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ResetServerAddresses
Примечание: Замените "Ethernet"
на имя вашего подключения (например, "Wi-Fi"
).
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("176.99.11.77", "80.78.247.254")
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("8.8.8.8", "8.8.4.4")
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("1.1.1.1", "1.0.0.1")
Технология "Безопасный DNS" (DNS-over-HTTPS) шифрует ваши DNS-запросы, повышая приватность.
Разрешает общий доступ к файлам и принтерам в локальной сети
netsh advfirewall firewall set rule group="Общий доступ к файлам и принтерам" new enable=Yes
Полный сброс сетевых настроек Windows
netsh winsock reset
Сбрасывает настройки TCP/IP протокола
netsh int ip reset
Освобождает текущий IP-адрес
ipconfig /release
Запрашивает новый IP-адрес у DHCP сервера
ipconfig /renew
Отображает все сетевые подключения и их статус
Get-NetAdapter
Проверяет подключение к серверу с указанным портом
Test-NetConnection google.com -Port 80
Отображает таблицу маршрутизации сети
route print
Удаляет временные файлы пользователя
Get-ChildItem -Path $env:TEMP -Recurse | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
Сканирует и восстанавливает поврежденные системные файлы
sfc /scannow
Проверяет диск на ошибки и исправляет их
chkdsk C: /f
Оптимизирует размещение файлов на диске
Optimize-Volume -DriveLetter C -Defrag
Полностью очищает корзину для всех дисков
Clear-RecycleBin -Force
Показывает информацию о всех дисках
Get-Disk
Перезагружает компьютер через 60 секунд
shutdown /r /t 60
Принудительно обновляет системное время. Требуется запуск PowerShell от имени Администратора.
Скрипт выполняет полный сброс службы времени Windows, если служба отключена или повреждена.
# Данный скрипт:
# 1. Включает службу (ставит тип запуска 'Авто')
# 2. Запускает ее
# 3. Настраивает надежный сервер времени
# 4. Ждет 5 секунд
# 5. Принудительно синхронизирует время
# 6. Показывает отчет о том, с каким сервером прошла синхронизация
# 7. Выводит финальное системное время
Set-Service -Name W32Time -StartupType Automatic
Start-Service -Name W32Time -ErrorAction SilentlyContinue
w32tm /config /manualpeerlist:'pool.ntp.org,0x8' /syncfromflags:manual /update
Write-Host 'Пауза 5 секунд, чтобы служба применила настройки...'
Start-Sleep -Seconds 5
w32tm /resync /force
# --- Вывод отчета о результате ---
Write-Host '--- Проверка статуса синхронизации ---' -ForegroundColor Green
w32tm /query /status
Write-Host '--- Текущее системное время ---' -ForegroundColor Green
Get-Date
Перезапускает службу обновлений Windows
Restart-Service -Name wuauserv
Останавливает службу обновлений
Stop-Service -Name wuauserv
Запускает службу обновлений Windows
Start-Service -Name wuauserv
Перезапускает диспетчер печати
Restart-Service -Name Spooler -Force
Перезапускает службу Windows Audio
Restart-Service -Name AudioSrv
Показывает все службы и их статус
Get-Service | Sort-Object Status,Name
Показывает службы, запускающиеся автоматически
Get-Service | Where-Object {$_.StartType -eq "Automatic"}
Перезапускает DHCP клиент
Restart-Service -Name Dhcp
Создает интерактивный HTML-отчет. В колонке "Путь запуска" отображается полный путь к файлу с аргументами командной строки.
Внимание: для служб в `svchost.exe` отображается общее потребление ресурсов всего процесса.
Работа с реестром требует особой осторожности! Неправильные изменения могут привести к нестабильности системы. Обязательно создайте точку восстановления перед внесением изменений.
Создает точку восстановления системы
Checkpoint-Computer -Description "Manual Restore Point"
Минимизирует сбор данных Windows
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Value 0
Включает отображение скрытых файлов в проводнике
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "Hidden" -Value 1
Отображает расширения для всех типов файлов
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Value 0
Показывает программы в автозапуске
Get-CimInstance -ClassName Win32_StartupCommand | Select-Object Name, Command, Location
Запускает regedit для ручного редактирования
regedit
Отключает всплывающие уведомления
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\PushNotifications" -Name "ToastEnabled" -Value 0
Убирает задержку при открытии меню
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Value 0
Показывает подробную информацию о CPU
Get-CimInstance -ClassName Win32_Processor | Select-Object Name, NumberOfCores, MaxClockSpeed
Показывает использование оперативной памяти
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object @{Name="Total RAM (GB)";Expression={[math]::Round($_.TotalVisibleMemorySize/1MB,2)}}, @{Name="Free RAM (GB)";Expression={[math]::Round($_.FreePhysicalMemory/1MB,2)}}
Планирует проверку RAM при следующей перезагрузке
mdsched
Показывает свободное место на всех дисках
Get-Volume | Where-Object {$_.DriveType -eq "Fixed"} | Select-Object DriveLetter, @{Name="Size (GB)";Expression={[math]::Round($_.Size/1GB,2)}}, @{Name="Free (GB)";Expression={[math]::Round($_.SizeRemaining/1GB,2)}}
Показывает процессы, загружающие процессор
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 ProcessName, CPU, WorkingSet
Показывает процессы, потребляющие больше всего RAM
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10 ProcessName, @{Name='RAM (MB)';Expression={[math]::Round($_.WorkingSet/1MB,2)}}
Показывает температуру жестких дисков (если поддерживается)
Get-CimInstance -Namespace root/wmi -ClassName MSStorageDriver_ATAPISmartData | ForEach-Object { $_.VendorSpecific }
Показывает, как долго работает компьютер без перезагрузки
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object @{Name="Uptime";Expression={(Get-Date) - $_.LastBootUpTime}}
Собирает всю основную информацию в одной команде (ОС, ЦП, ОЗУ, BIOS и др.)
Get-ComputerInfo
Собирает и выводит подробный отчет о системе, процессоре, памяти, дисках, сети и видеокарте.
# --- Системная информация ---
# ... (и так далее, полный скрипт будет скопирован)
Запускает быстрое сканирование Windows Defender
Start-MpScan -ScanType QuickScan
Запускает полное сканирование системы
Start-MpScan -ScanType FullScan
Обновляет базы данных Windows Defender
Update-MpSignature
Показывает состояние защиты системы
Get-MpPreference | Select-Object RealTimeProtectionEnabled, DisableBehaviorMonitoring, DisableIOAVProtection
DISM проверка целостности образа Windows
DISM /Online /Cleanup-Image /CheckHealth
DISM восстановление поврежденных файлов
DISM /Online /Cleanup-Image /RestoreHealth
Проверяет состояние Windows Firewall
Get-NetFirewallProfile | Select-Object Name, Enabled
Включает Windows Firewall для всех профилей
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True