Как стать автором
Обновить

Комментарии 34

Если мой следующий комментарий этой ночью не последует, значит оно работает :)
полчаса ;) эффект ускорения достигнут ;)
После перезапуска у меня (как и обычно) появился диалог «Вход в windows», где я ввожу пароль.

Ну, думаю — отпишусь, что нужно отключить пароль к учетной записи и диалог входа в систему, так пока набрал пол-коммента на Хабре, вдруг комп начал переходить в спящий режим =)

p.s.: Windows XP SP3, если что
«2. Если есть пароль на вход (иногда необходим для Remote Desktop), то Win+R –>control userpasswords2 и там пишем пользователя по умолчанию.»

У меня тоже пароль стоит, поэтому я этот пункт и добавил.
Там галочку убираете, и вводите имя/пароль пользователя по умолчанию

И комп будет грузится без пароля. Но при входе с хибирнейта пароль запросит.
Оу, действительно.
Сорри, невнимательно читал.
Сейчас попробую (и уже на этот раз точно иду спать :) )
А за саму идею респект!
Очень интересно, можно ли как-то реализовать примерно такой же скрипт, только чтобы винда переходила в hibernate до авторизации пользователя. Или это бессмысленно? :)

И если это возможно — быстрее ли это обычной загрузки? (я же так понимаю все дополнительные службы и программы с авторана обязательно грузятся после авторизации, или есть какая-то возможность подгружать что-то раньше, если к примеру программа установлена «для всех пользователей»?)
У меня основная масса программ грузится после авторизации.
Самый просто выход — поставить автоматический вход в систему.
А как бы еще научить различать обычный рестарт с таким «выключением». Создавать отдельный ярлык для перезагрузки, который сначала будет удалять гибернацию, перезагружать, а затем восстанавливать? Муторно.
Попробую программку накидать на тему.
Так после создания записи о хибернации, скрипт сразу перезагружает машину. Так что описанная вами ситуация мало вероятна. Или я что то непонял. Просто скрипт было первым что пришло в голову.
Данный скрипт добавляет переход в гибернацию только при следующей перезагрузке (секция \RunOnce\), все последующие перезагрузки будут проходить в обычном режиме.
Непонятно, зачем столько усилий, если можно просто использовать hibernate по-назначению, при этом не перезагружая систему вообще.
на работе так и делаю, однако через какоето время глючит жутко, что думаешь, может стоит всетаки выключать\включать, а во время включения просто ходить за кофе
Как показывает практика, айдейты выходят чаще, чем это «какое-то время». Так что перезагружать время от времени все равно придется, а в остальное время можно просто хибернейтить.

А я вот вообще не выключал рабочую машину, чтобы всегда можно было подцепиться по RDP.
*апдейты то есть
нужно теперь только понимать, что время выключения выросло на время включения.
для обычного пк это не актуально, для ноута актуально сколько времени комп выключается, т.к. только после выключения можно поотрубать девайсы, бросить в чехол и бежать на работу, на которую и так опаздываешь.
а какие девайсы надо отключають от ноута только после отключения?
внешний жесткий диск
Это какое-то заблуждение, оставшееся со времен PS/2 мышей и клавиатур?
т.е. вы хотите мне сказать, что я могу просто вырубить жесткий диск, подсоединенный по USB?
Т.е. в момент скажем если какаято программа туда чтото пишет, я просто вырубаю и все отлично?
Да, можете.
Если кто-то пишет, то он обломается. Для того, чтобы этого не случалось, есть «безопасное отключение».
надеюсь речь идёт о каком-нить есата диске? иначе я не понимаю. про юсб уже сказали.
3. Создаем файлик shutdown.js ...
А там не должно быть случайно shutdown.vbs?
Не должно быть.
Windows Scripting Host одинаково работает и с тем, и с другим.
Ага, так и есть ;)

Только вот под вистой скрипт не пошел сразу. Немного подправил:
set WshShell = WScript.CreateObject("WScript.Shell")
WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce\Hibernate", "rundll32.exe PowrProf.dll,SetSuspendState"
WSHShell.Run("shutdown -r -t 0")


* This source code was highlighted with Source Code Highlighter.
По большому счету, кстати, скрипт тут и не нужен, достаточно обычного cmd-файла.
НЛО прилетело и опубликовало эту надпись здесь
А Vistа так умеет?
Спасибо за топик, действительно очень полезная вещь!
Идея интересная, только вот на XP с обьемом оперативки больше 4ГБ hybernate не работает (
Вот в этом топике: (http://www.velocityreviews.com/forums/t523486-xp-x64-pro-hibernation-issue.html)

Написано как включить потеряную оперативку.
Там есть линк на хотфикс от MS, на сточку, которую нужно вписать в BOOT.IINI, и на опиции в биосе, которые надо включить.

Подчеркиваю: если материнка не умеет аппаратный ремаппинг (у меня, например, умеет), то после этого доступными станут только 3Гб оперативки вместо четырех.
Последний гигабайт легко возвращается стиранием строчки из boot.ini, но тогда естественно что хибернейт снова исчезает.

На Vista x64 эта «проблема» решена, и хибернейт работает большими объемами оперативки. В Windows 7 не смотрел еще, но имхо рещается так же как в Висте.
Насколько я понимаю, этот способ не подойдет в дуал-бутной конфигурации, например Windows/Linux

Например, вы «выключаете» компьютер, и перезагружаетесь в Линуксе. Работаете, создаете/удаляете/перемещаете файлы на жестком диске.

Потом загружаетесь в линукс… И все ваши файлы исчезают!!!

Я предполагаю, что так происходит потому что таблица файлов держится в памяти в момент хибернейта, и не загружается заново до перезагрузки.
То есть сразу после загрузки Windows ее нужно будет быстро-быстро-быстро перезагрузить, пока она не успела обратиться сделать изменения в файловой сисстеме затереть важные файлы.
Но и даже этот вариант не всегда проходит… Так что в конце концов файлы найти можно, но только полным сканированием жесткого диска с распознаканием, как например в программе @ctive Recovery
Все верно. Для дуал конфигурации это не покатит.
Спасибо за статью — теперь утро на работе начинается более приятно )

У меня небольшой вопрос: а можно ли так сделать так, что бы hybernate наступал через определенное время 30 или 60 секунд? Ведь некоторый программы (такие как Outlook) не успевают полностью прогрузится.
У меня получилось реализовать это с помощью программки sleep, которая входит в состав Windows Server 2003 Resource Kit Tools.

Команду перехода в спящий режим заменил на исполняемый файл:

var WSHShell = Wscript.CreateObject("Wscript.Shell");
WSHShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce\\Hibernate", "D:\\path\\hibernate.cmd");
WSHShell.Run("shutdown -r -t 0");


А в этом файле прописал следующее:
rundll32.exe user32.dll,LockWorkStation
sleep 200
rundll32.exe PowrProf.dll,SetSuspendState


Первая строка делает log off (так на всякий случай, что бы кто-то не прервал выполнения cmd), далее задержка в 200 секунд (для моей машины это значение оказалось оптимальным) и собственно переход в спящий режим.

Теперь в планах попытаться реализовать одноразовый безпарольный вход в систему для данного случая.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории