Каждый гигабайт записи приближает момент, когда накопитель перейдёт в режим «только чтение». Но Windows до сих пор генерирует тонны мусорного трафика, незаметно пожирая ваш TBW. Сегодня покажу, как я отключаю всех убийц ресурса универсальными скриптами — работают на Windows 10 и 11 безотказно.
- Я тут не из за монетизации, 4 рубля в день, это смешно. Я тут для того чтобы вы становились умнее и знали больше остальных, особенно тех кто вообще ничем не интересуется.
🔔 Подпишитесь на канал «Настройки Windows» — здесь я разбираю систему до винтика, без воды и маркетинга. 💬 Делитесь в комментариях, какой у вас SSD и сколько TBW уже накрутили — сравним статистику.
🛡️ ВЗНОС В РАЗВИТИЕ КАНАЛА И СОЗДАНИЕ ПОЛЕЗНЫХ СКРИПТОВ 🛡️
🔧 Подготовка: проверяем права
Перед любыми настройками убедитесь, что PowerShell запущен от имени администратора. Без этого ничего не выйдет. Вставьте эту проверку в начало скрипта:
# Проверка прав администратора
$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $isAdmin) {
Write-Host "[ОШИБКА] PowerShell запущен БЕЗ прав администратора. Скрипты не будут работать." -ForegroundColor Red
Write-Host "Закройте окно, кликните правой кнопкой по PowerShell и выберите 'Запуск от имени администратора'." -ForegroundColor Yellow
break
} else {
Write-Host "[OK] Права администратора подтверждены. Можно начинать оптимизацию." -ForegroundColor Green
}
⚡ TRIM: включаем систему жизнеобеспечения SSD
TRIM — это команда, которая сообщает SSD-контроллеру, какие блоки данных больше не нужны и могут быть стёрты. Без неё при удалении файла Windows просто помечает его как «удалённый», но физически данные остаются в ячейках NAND. Когда нужно записать новые данные, контроллеру приходится сначала стирать старые блоки, а потом записывать новые. Это называется write amplification — износ SSD возрастает в разы.
В Windows 10 и 11 TRIM включён по умолчанию, но я всегда проверяю.
🔍 Проверяем и активируем TRIM
# Проверяем текущее состояние TRIM
$trimStatus = fsutil behavior query DisableDeleteNotify
Write-Host "`n=== ПРОВЕРКА СОСТОЯНИЯ TRIM ===" -ForegroundColor Cyan
if ($trimStatus -match "DisableDeleteNotify = 0") {
Write-Host "[OK] TRIM уже ВКЛЮЧЁН. Ничего делать не нужно." -ForegroundColor Green
} elseif ($trimStatus -match "DisableDeleteNotify = 1") {
Write-Host "[ВНИМАНИЕ] TRIM ОТКЛЮЧЁН! Пытаюсь включить..." -ForegroundColor Yellow
fsutil behavior set DisableDeleteNotify 0 | Out-Null
$newStatus = fsutil behavior query DisableDeleteNotify
if ($newStatus -match "DisableDeleteNotify = 0") {
Write-Host "[OK] TRIM успешно ВКЛЮЧЁН." -ForegroundColor Green
} else {
Write-Host "[ОШИБКА] Не удалось включить TRIM. Проверьте права администратора." -ForegroundColor Red
}
} else {
Write-Host "[ОШИБКА] Не удалось получить статус TRIM. Неизвестный ответ системы." -ForegroundColor Red
Write-Host "Ответ: $trimStatus" -ForegroundColor Gray
}
🚀 Запускаем TRIM вручную
Иногда Windows откладывает TRIM, чтобы не нагружать систему. Я запускаю его вручную раз в месяц:
# Запускаем TRIM вручную для диска C:
Write-Host "`n=== ПРИНУДИТЕЛЬНЫЙ TRIM ДИСКА C: ===" -ForegroundColor Cyan
try {
$result = Optimize-Volume -DriveLetter C -ReTrim -Verbose -ErrorAction Stop 4>&1
$success = $result | Where-Object { $_ -match "Successfully" -or $_ -match "успешно" }
if ($success -or $?) {
Write-Host "[OK] Команда TRIM для диска C: успешно выполнена." -ForegroundColor Green
} else {
Write-Host "[OK] TRIM отправлен контроллеру диска C:." -ForegroundColor Green
}
} catch {
Write-Host "[ОШИБКА] Не удалось выполнить TRIM: $($_.Exception.Message)" -ForegroundColor Red
}
Честно скажу: если у вас современный NVMe Gen4/Gen5 SSD с DRAM-буфером, ручная оптимизация даст лишь психологический комфорт. Система и так умная. Но если вы, как и я, любите абсолютный контроль — продолжаем.
🔎 Индексация Windows Search: отключаем пожирателя записей
Служба Windows Search постоянно сканирует файлы, чтобы вы могли находить их через поиск. Для каждого файла создаётся запись в базе данных, содержимое извлекается и сохраняется на диск. На SSD это не нужно — поиск и так быстрый, а фоновый трафик записи жрёт ресурс.
🛑 Отключаем индексацию
# Отключаем службу Windows Search
Write-Host "`n=== ОТКЛЮЧЕНИЕ СЛУЖБЫ ИНДЕКСАЦИИ (WSearch) ===" -ForegroundColor Cyan
try {
$service = Get-Service -Name "WSearch" -ErrorAction Stop
$currentStatus = $service.Status
$currentStartType = (Get-Service -Name "WSearch").StartType
Write-Host "Текущее состояние: $currentStatus, Тип запуска: $currentStartType" -ForegroundColor Gray
if ($currentStatus -eq 'Running') {
Stop-Service -Name "WSearch" -Force -ErrorAction Stop
Write-Host "[OK] Служба WSearch остановлена." -ForegroundColor Green
} else {
Write-Host "[OK] Служба WSearch уже остановлена." -ForegroundColor Yellow
}
if ($currentStartType -ne 'Disabled') {
Set-Service -Name "WSearch" -StartupType Disabled -ErrorAction Stop
Write-Host "[OK] Автозапуск службы WSearch отключён." -ForegroundColor Green
} else {
Write-Host "[OK] Служба WSearch уже отключена ранее." -ForegroundColor Yellow
}
} catch {
Write-Host "[ОШИБКА] Не удалось изменить состояние WSearch: $($_.Exception.Message)" -ForegroundColor Red
}
Компромисс: Если поиск нужен, зайдите в Панель управления → Параметры индексирования → Изменить и снимите галочки со всех папок, кроме «Пуск» и «Избранное».
Мы остановили индексатор. Но есть ещё одна служба, которая маскируется под «ускоритель», а на деле просто греет ваш SSD лишними циклами перезаписи. Разберёмся с ней дальше.
🏃 SysMain (Superfetch): наследие эпохи HDD
Служба SysMain анализирует ваши привычки и предварительно загружает часто используемые приложения в RAM. Для HDD это было нужно — время доступа к файлам большое. Но у SSD время доступа стремится к нулю. Предварительная загрузка не даёт прироста скорости, зато генерирует постоянный трафик записи в кэш-файлы Prefetch.
🚫 Отключаем SysMain
# Отключаем SysMain и чистим Prefetch
Write-Host "`n=== ОТКЛЮЧЕНИЕ СЛУЖБЫ SYSMAIN (SUPERFETCH) ===" -ForegroundColor Cyan
try {
$service = Get-Service -Name "SysMain" -ErrorAction Stop
$currentStatus = $service.Status
$currentStartType = $service.StartType
Write-Host "Текущее состояние: $currentStatus, Тип запуска: $currentStartType" -ForegroundColor Gray
if ($currentStatus -eq 'Running') {
Stop-Service -Name "SysMain" -Force -ErrorAction Stop
Write-Host "[OK] Служба SysMain остановлена." -ForegroundColor Green
} else {
Write-Host "[OK] Служба SysMain уже остановлена." -ForegroundColor Yellow
}
if ($currentStartType -ne 'Disabled') {
Set-Service -Name "SysMain" -StartupType Disabled -ErrorAction Stop
Write-Host "[OK] Автозапуск SysMain отключён." -ForegroundColor Green
} else {
Write-Host "[OK] Служба SysMain уже отключена ранее." -ForegroundColor Yellow
}
} catch {
if ($_.Exception.Message -match "cannot find") {
Write-Host "[ИНФО] Служба SysMain не найдена в системе (возможно, уже удалена)." -ForegroundColor Yellow
} else {
Write-Host "[ОШИБКА] Не удалось изменить состояние SysMain: $($_.Exception.Message)" -ForegroundColor Red
}
}
# Чистим папку Prefetch
Write-Host "`n=== ОЧИСТКА ПАПКИ PREFETCH ===" -ForegroundColor Cyan
$prefetchPath = "C:\Windows\Prefetch"
if (Test-Path $prefetchPath) {
try {
$files = Get-ChildItem -Path $prefetchPath -File -ErrorAction Stop
$count = $files.Count
if ($count -gt 0) {
Remove-Item -Path "$prefetchPath\*" -Force -ErrorAction Stop
Write-Host "[OK] Удалено файлов в Prefetch: $count" -ForegroundColor Green
} else {
Write-Host "[OK] Папка Prefetch уже пуста." -ForegroundColor Yellow
}
} catch {
Write-Host "[ОШИБКА] Не удалось очистить Prefetch: $($_.Exception.Message)" -ForegroundColor Red
}
} else {
Write-Host "[ИНФО] Папка Prefetch не существует." -ForegroundColor Yellow
}
Примечание: ReadyBoost (кэширование на флешки) удалён из Windows 11 ещё в версии 22H2. В Windows 10 он автоматически отключается, если системный диск — SSD. Вручную отключать не нужно.
💾 Файл подкачки: фиксируем размер
Многие советуют полностью отключить файл подкачки на SSD. Не делайте этого. Многие приложения требуют наличия pagefile.sys, без него Windows не создаст дамп памяти при BSOD, а некоторые программы просто вылетят.
Но мы можем оптимизировать его — задать фиксированный размер, чтобы Windows не расширяла и не сжимала его постоянно, создавая лишний трафик записи.
Какой размер? Если у вас 16 ГБ RAM и больше, достаточно 2048-4096 МБ. Этого хватит для стабильности и создания мини-дампов.
Однажды я зафиксировал pagefile на 16 ГБ на машине с 32 ГБ RAM. Спустя месяц клиент пожаловался, что Photoshop вылетает. Оказалось, специфический плагин требовал коммита больше, чем было физической памяти. С тех пор рекомендую формулу: RAM + 20%.
💳 Донат через Ozon (от 10 ₽. Получатель: Александр Г.)
🎯 Оптимизируем файл подкачки через PowerShell
# Оптимизация файла подкачки
Write-Host "`n=== НАСТРОЙКА ФАЙЛА ПОДКАЧКИ ===" -ForegroundColor Cyan
$targetSize = 4096 # Размер в МБ (4 ГБ)
try {
# Отключаем автоматическое управление
$cs = Get-CimInstance -ClassName Win32_ComputerSystem -ErrorAction Stop
if ($cs.AutomaticManagedPagefile) {
$cs | Set-CimInstance -Property @{AutomaticManagedPagefile = $false} -ErrorAction Stop
Write-Host "[OK] Автоматическое управление файлом подкачки отключено." -ForegroundColor Green
} else {
Write-Host "[OK] Автоматическое управление уже было отключено." -ForegroundColor Yellow
}
# Проверяем текущие настройки для диска C:
$pagefile = Get-CimInstance -ClassName Win32_PageFileSetting -Filter "Name='C:\\pagefile.sys'" -ErrorAction SilentlyContinue
if ($pagefile) {
if ($pagefile.InitialSize -eq $targetSize -and $pagefile.MaximumSize -eq $targetSize) {
Write-Host "[OK] Файл подкачки уже настроен: фиксированный размер $targetSize МБ. Изменения не требуются." -ForegroundColor Yellow
} else {
Write-Host "Текущие размеры: $($pagefile.InitialSize) МБ - $($pagefile.MaximumSize) МБ. Обновляю..." -ForegroundColor Gray
$pagefile | Set-CimInstance -Property @{InitialSize = $targetSize; MaximumSize = $targetSize} -ErrorAction Stop
Write-Host "[OK] Размер файла подкачки обновлён: зафиксирован на $targetSize МБ." -ForegroundColor Green
}
} else {
$arguments = @{
Name = "C:\pagefile.sys"
InitialSize = $targetSize
MaximumSize = $targetSize
}
New-CimInstance -ClassName Win32_PageFileSetting -Property $arguments -ErrorAction Stop | Out-Null
Write-Host "[OK] Создана новая настройка файла подкачки: фиксированный размер $targetSize МБ." -ForegroundColor Green
}
Write-Host "[ВНИМАНИЕ] Для применения изменений требуется ПЕРЕЗАГРУЗКА компьютера." -ForegroundColor Yellow
} catch {
Write-Host "[ОШИБКА] Не удалось настроить файл подкачки: $($_.Exception.Message)" -ForegroundColor Red
}
(После выполнения потребуется перезагрузка).
💤 Гибернация: отключаем скрытого гиганта записи
Гибернация (hiberfil.sys) сохраняет всё содержимое RAM на диск перед выключением. Если у вас 32 ГБ RAM, то при каждом уходе в гибернацию Windows записывает до 32 ГБ данных на SSD. Это колоссальный удар по TBW.
«Быстрый запуск» тоже использует гибернацию — при выключении ПК система сбрасывает ядро и драйверы в hiberfil.sys. Это ускоряет загрузку на 2-3 секунды, но ценой гигабайтов записи.
На моей памяти было три случая, когда пользователи теряли данные после сбоев при выходе из гибернации на NVMe первых поколений. С тех пор я отключаю powercfg -h off на всех корпоративных машинах без раздумий.
🛑 Отключаем гибернацию
# Отключаем гибернацию
Write-Host "`n=== ОТКЛЮЧЕНИЕ ГИБЕРНАЦИИ ===" -ForegroundColor Cyan
$hiberfilPath = "C:\hiberfil.sys"
$hiberfilExists = Test-Path $hiberfilPath
if (-not $hiberfilExists) {
Write-Host "[OK] Гибернация уже отключена. Файл hiberfil.sys отсутствует." -ForegroundColor Yellow
} else {
try {
$output = & powercfg -h off 2>&1
if ($LASTEXITCODE -eq 0) {
Write-Host "[OK] Гибернация успешно отключена." -ForegroundColor Green
Write-Host "[OK] Файл hiberfil.sys удалён. Освобождено место на диске." -ForegroundColor Green
} else {
Write-Host "[ОШИБКА] Команда powercfg завершилась с кодом $LASTEXITCODE" -ForegroundColor Red
Write-Host "Ответ: $output" -ForegroundColor Gray
}
} catch {
Write-Host "[ОШИБКА] Не удалось отключить гибернацию: $($_.Exception.Message)" -ForegroundColor Red
}
}
Команда универсальна, мгновенна и не требует перезагрузки. Файл гибернации удалится сразу же.
🔄 Дефрагментация: проверяем, не убивает ли Windows ваш SSD
Дефрагментация SSD — это зло. У SSD нет механических головок, время доступа к любому блоку равно нулю. Дефрагментация для SSD — это не оптимизация, а осознанное уничтожение ресурса. Процесс дефрагментации читает блоки и перезаписывает их в новые места — бессмысленное использование циклов P/E.
Windows 10 и 11 умные: утилита «Оптимизация дисков» не дефрагментирует SSD, а выполняет TRIM. Но есть нюанс — если тип диска определён неправильно, Windows может начать дефрагментировать SSD.
🔍 Проверяем тип накопителей
# Проверяем, как система определила тип носителя
Write-Host "`n=== ПРОВЕРКА ТИПА НАКОПИТЕЛЕЙ ===" -ForegroundColor Cyan
$disks = Get-PhysicalDisk | Select-Object FriendlyName, MediaType, BusType, Size
foreach ($disk in $disks) {
$sizeGB = [math]::Round($disk.Size / 1GB, 1)
if ($disk.MediaType -eq 'SSD') {
Write-Host "[OK] $($disk.FriendlyName) ($sizeGB ГБ, $($disk.BusType)) -> определён как SSD. Защита активна." -ForegroundColor Green
} elseif ($disk.MediaType -eq 'HDD') {
Write-Host "[ИНФО] $($disk.FriendlyName) ($sizeGB ГБ, $($disk.BusType)) -> определён как HDD. Дефрагментация разрешена." -ForegroundColor Cyan
} elseif ($disk.MediaType -eq 'Unspecified' -or $disk.MediaType -eq 'SCM') {
Write-Host "[ВНИМАНИЕ] $($disk.FriendlyName) ($sizeGB ГБ, $($disk.BusType)) -> тип НЕ ОПРЕДЕЛЁН ($($disk.MediaType)). Возможна ошибочная дефрагментация!" -ForegroundColor Red
} else {
Write-Host "[ИНФО] $($disk.FriendlyName) ($sizeGB ГБ) -> тип: $($disk.MediaType)" -ForegroundColor Gray
}
}
Если хотите полностью отключить задачу дефрагментации (не рекомендую — это отключит и плановый TRIM):
# Отключаем задачу автоматической дефрагментации
Write-Host "`n=== УПРАВЛЕНИЕ ЗАДАЧЕЙ SCHEDULEDDEFRAG ===" -ForegroundColor Cyan
try {
$task = Get-ScheduledTask -TaskName "ScheduledDefrag" -TaskPath "\Microsoft\Windows\Defrag\" -ErrorAction Stop
if ($task.State -eq 'Disabled') {
Write-Host "[OK] Задача ScheduledDefrag уже отключена." -ForegroundColor Yellow
} else {
Disable-ScheduledTask -TaskName "ScheduledDefrag" -TaskPath "\Microsoft\Windows\Defrag\" -ErrorAction Stop | Out-Null
Write-Host "[OK] Задача ScheduledDefrag отключена. SSD защищён от случайной дефрагментации." -ForegroundColor Green
Write-Host "[ВНИМАНИЕ] Плановый TRIM тоже отключён. Запускайте его вручную: Optimize-Volume -DriveLetter C -ReTrim" -ForegroundColor Yellow
}
} catch {
Write-Host "[ОШИБКА] Не удалось управлять задачей: $($_.Exception.Message)" -ForegroundColor Red
}
Моя рекомендация: Оставьте задачу включённой, но убедитесь, что MediaType для SSD определён как SSD. Тогда Windows будет делать только безопасный TRIM.
🧩 Дополнительные мелочи
Чтобы выжать максимум из ресурса SSD, обратите внимание на ещё несколько процессов:
🔸 Точки восстановления системы (System Protection) — теневые копии томов создают постоянный трафик записи. Если делаете бэкапы сторонним софтом, встроенные точки можно отключить. GUI: Система → Защита системы → Настроить → Отключить защиту системы.
🔸 Журналы Windows (Event Logs) — постоянно пишутся на диск. Полностью отключать нельзя, но можно уменьшить максимальный размер. GUI: Просмотр событий → Свойства каждого журнала → Уменьшить размер до 1024-2048 КБ.
🔸 Кэш записи для USB — если часто копируете на флешки, Windows кэширует запись. Но это больше касается флешек, чем внутренних SSD.
🔸 Temp и кэш браузеров на RAM-диск — если у вас 32+ ГБ RAM, можете создать виртуальный RAM-диск (ImDisk) и перенести туда %TEMP% и кэш браузеров. Это исключит запись временных файлов на SSD. Но для 16 ГБ RAM это избыточно.
🎯 Итог
Оптимизация SSD — это не слепое следование гайдам из интернета, а понимание того, как работает NTFS и контроллеры NAND.
Мы не отключили файл подкачки полностью, чтобы не сломать стабильность. Не отключили плановый TRIM, потому что это единственное, что позволяет SSD «дышать». Но мы вырезали индексацию, SysMain, гибернацию и динамическое расширение файла подкачки.
Применив эти настройки, вы снизите фоновый трафик записи в разы. Ваш SSD будет работать на пике скоростей не только в первый месяц, но и через три, и через пять лет, а TBW будет таять неприлично медленно.
💬 Миф, который убил ваши старые SSD
В 2015-2018 годах на форумах массово советовали полностью отключать файл подкачки. Это была фатальная ошибка. Современные приложения, особенно на Electron и тяжёлые IDE, требуют виртуальной памяти. Без pagefile.sys они вылетают с ошибкой Out of Memory. В 2026 году это не просто вредно — это ломает систему.
SSD защищён. Но у вас в автозагрузке до сих пор прописались десятки служб, которые стартуют вместе с Windows и незаметно крадут секунды при каждом включении. Как провести там генеральную уборку без вреда для системы — в статье №18: "Autoruns от Sysinternals: рентген автозагрузки".
👍 Если эта настройка сэкономила вам ресурс накопителя — поставьте лайк, подпишитесь на канал «Настройки Windows» и поделитесь статьёй с друзьями, которые до сих пор верят, что SSD нужно дефрагментировать. 💬 Напишите в комментариях, какой у вас SSD и сколько TBW уже накрутили — сравним статистику и обсудим, какие ещё убийцы ресурса остались за кадром.
#SSD #ТвердотельныйНакопитель #ОптимизацияWindows #Windows10 #Windows11 #TRIM #ФайлПодкачки #Индексация #SysMain #Superfetch #Гибернация #Дефрагментация #PowerShell #СкриптыPowerShell #НастройкиWindows #РесурсSSD #TBW #NAND #NVMe #SATA #ОптимизацияПК #УскорениеWindows #СистемноеАдминистрирование #WindowsOptimization #SSDLifespan #WindowsTweaks #СистемныеНастройки #ПК #Компьютер #ТехноБлог #IT #Сисадмин
✴️ Дорогие друзья. Если статья оказалась полезна, одна СТЕЛЛА от вас = мощная реклама для сотен людей. Поддержите контент, чтобы проблемы и решения находились быстрее! ✴️
С уважением. Александр, канал "Настройки Windows" на Яндекс.Дзен