Команда rundll32 powrprof.dll,SetSuspendState 0,1,0 — самый быстрый способ перевести Windows в спящий режим без мыши и меню «Пуск», но у многих пользователей она вместо сна включает гибернацию или вовсе не срабатывает. Причина почти всегда кроется в параметрах 0,1,0 и в том, включена ли гибернация в системе.
Ниже разберём, что означает каждый аргумент, почему команда ведёт себя по-разному на разных компьютерах, как создать ярлык для мгновенного сна и что проверить, если ПК просыпается сразу после засыпания. Материал применим к Windows 10 и Windows 11, где команда работает одинаково.
Что делает команда rundll32 powrprof.dll SetSuspendState
Утилита rundll32 — стандартный компонент Windows, который позволяет вызывать функции из библиотек DLL напрямую, без написания программ. В данном случае вызывается функция SetSuspendState из системной библиотеки powrprof.dll, отвечающей за управление электропитанием.
Именно эта функция используется самой системой, когда вы нажимаете «Сон» в меню завершения работы. Команда лишь обращается к тому же механизму напрямую. Поэтому результат её выполнения полностью зависит от текущих настроек электропитания конкретного компьютера.
Полный синтаксис вызова выглядит так:
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
Обратите внимание: запятые после имени библиотеки и между параметрами обязательны, пробелы внутри списка аргументов могут привести к ошибке выполнения.
Расшифровка параметров 0, 1, 0
Функция SetSuspendState принимает три логических параметра. Каждый из них отвечает за отдельный аспект поведения системы при переходе в спящий режим.
| Параметр | Значение | Назначение |
|---|---|---|
| Первый (Hibernate) | 0 | 0 — спящий режим, 1 — гибернация |
| Второй (ForceCritical) | 1 | 1 — принудительный переход без запросов приложениям |
| Третий (DisableWakeEvent) | 0 | 0 — события пробуждения разрешены, 1 — отключены |
Разберём каждый аргумент подробнее:
- 🛌 Первый параметр (0) — указывает, что нужен именно сон, а не гибернация. Если поставить 1, система сохранит состояние на диск и полностью выключится.
- ⚡ Второй параметр (1) — принудительный режим: Windows не ждёт согласия программ и не показывает предупреждения о несохранённых данных.
- ⏰ Третий параметр (0) — разрешает таймеры пробуждения, то есть система сможет проснуться по расписанию или от устройств ввода.
⚠️ Внимание: параметр 1 на второй позиции переводит ПК в сон принудительно. Открытые документы, несохранённые проекты и активные загрузки не будут сохранены — приложения просто не успеют запросить подтверждение. Перед использованием команды сохраните важную работу.
Почему вместо сна включается гибернация
Самая частая жалоба: пользователь вводит команду с параметром сна, а компьютер уходит в гибернацию — полностью выключается и долго загружается обратно. Это известная особенность функции SetSuspendState: если гибернация включена в системе, вызов с параметром 0 может всё равно активировать гибернацию, игнорируя заданный аргумент.
Проверить, включена ли гибернация, можно через командную строку, запущенную от имени администратора:
powercfg /a
Эта команда покажет все доступные состояния сна на вашем устройстве. Если гибернация в списке присутствует, а вам нужен именно классический сон через rundll32, гибернацию придётся отключить:
powercfg /hibernate off
После отключения команда rundll32 powrprof.dll,SetSuspendState 0,1,0 начнёт переводить компьютер именно в спящий режим. Учтите, что отключение гибернации также удалит файл hiberfil.sys и отключит функцию быстрого запуска Windows, которая использует тот же механизм.
Как создать ярлык для быстрого перехода в сон
Вводить длинную команду каждый раз неудобно, поэтому практичнее оформить её в виде ярлыка на рабочем столе. Тогда перевод в сон будет выполняться двойным щелчком или назначенной комбинацией клавиш.
Порядок создания ярлыка:
- 🖱️ Щёлкните правой кнопкой мыши по пустому месту рабочего стола и выберите
Создать → Ярлык. - 📝 В поле расположения объекта вставьте команду
rundll32.exe powrprof.dll,SetSuspendState 0,1,0и нажмите «Далее». - 🏷️ Задайте понятное имя, например «Спящий режим», и завершите создание.
- ⌨️ При желании откройте свойства ярлыка и назначьте сочетание клавиш в поле «Быстрый вызов».
☑️ Проверка перед созданием ярлыка сна
Готовый ярлык можно закрепить на панели задач или в меню «Пуск», перетащив его мышью. Для наглядности также можно сменить значок через свойства ярлыка — системные иконки находятся в файле shell32.dll.
Компьютер засыпает и сразу просыпается: диагностика
Другая типичная проблема — ПК уходит в сон и через секунды самостоятельно включается обратно. Команда здесь ни при чём: виновато устройство или задача, которая генерирует событие пробуждения.
Чтобы узнать, что именно разбудило систему в последний раз, выполните в командной строке:
powercfg /lastwake
Дополнительно полезно посмотреть список устройств, которым разрешено будить компьютер:
powercfg /devicequery wake_armed
Если в списке есть сетевая карта или USB-устройство, которое не должно будить систему, откройте Диспетчер устройств, найдите нужное устройство и на вкладке «Управление электропитанием» снимите флажок разрешения вывода из ждущего режима. Точный набор вкладок зависит от драйвера конкретного устройства.
Почему ПК будит сетевая карта
Многие сетевые адаптеры поддерживают технологию Wake-on-LAN и реагируют на сетевые пакеты даже во сне. Если компьютер подключён к активной сети, фоновый трафик может вызывать ложные пробуждения. Отключите опцию пробуждения для адаптера в диспетчере устройств, если Wake-on-LAN вам не нужен.
⚠️ Внимание: не отключайте пробуждение для всех устройств подряд «на всякий случай» — иначе потом не сможете разбудить ПК клавиатурой или мышью и придётся использовать кнопку питания. Меняйте настройки по одному устройству и проверяйте результат.
Альтернативные способы перевода в сон
Команда через rundll32 — не единственный вариант. В зависимости от ситуации удобнее могут оказаться другие методы, и полезно знать их отличия.
Например, в PowerShell доступен более современный вызов через API приложений, но классическая команда остаётся популярной из-за простоты: она работает в окне «Выполнить», в bat-файлах, в планировщике заданий и не требует прав администратора. Для автоматизации её можно встроить в скрипт, который сначала сохраняет данные, а затем переводит систему в сон.
Если же команда не срабатывает вовсе, проверьте, не повреждены ли системные файлы, выполнив sfc /scannow в командной строке от имени администратора. Также убедитесь, что в системе вообще доступен спящий режим — вывод powercfg /a покажет, поддерживает ли его конфигурация оборудования и текущий план электропитания.
Часто задаваемые вопросы
Почему команда не работает и ничего не происходит?
Чаще всего причина в опечатке: проверьте запятые и отсутствие лишних пробелов в строке rundll32.exe powrprof.dll,SetSuspendState 0,1,0. Также выполните powercfg /a и убедитесь, что спящий режим доступен в вашей системе.
Чем сон отличается от гибернации?
При сне состояние системы хранится в оперативной памяти, компьютер потребляет немного энергии и просыпается за секунды. При гибернации данные записываются на диск в файл hiberfil.sys, питание отключается полностью, а возврат к работе занимает больше времени.
Можно ли использовать команду в bat-файле или планировщике?
Да, команда отлично работает в пакетных файлах и задачах планировщика. Только учитывайте, что параметр принудительного сна закроет несохранённые данные, поэтому в автоматических сценариях лучше предусмотреть предварительное сохранение работы.
Безопасно ли отключать гибернацию командой powercfg /hibernate off?
Да, это обратимая операция: включить гибернацию обратно можно командой powercfg /hibernate on. Побочный эффект — отключится быстрый запуск Windows и освободится место на диске за счёт удаления файла hiberfil.sys.
Работает ли команда в Windows 11?
Да, механизм вызова SetSuspendState через rundll32 сохраняется в Windows 11 и ведёт себя так же, как в Windows 10, включая особенность с принудительной гибернацией при её включённом состоянии.