Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перезагрузка компьютера в безопасный режим с помощью скрипта

Ответить
Настройки темы
CMD/BAT - [решено] Перезагрузка компьютера в безопасный режим с помощью скрипта

Аватара для Kot86

Старожил


Сообщения: 226
Благодарности: 27


Конфигурация

Профиль | Отправить PM | Цитировать


Привет!
Существует ли способ перезагрузить компьютер в безопасный режим с помощью CMD/BAT/VBS/скрипта? Что-то типа
Код: Выделить весь код
shutdown -r -s -t 00
, где "-s" — "Safe Mode" (это лишь пример, как это могло бы выглядеть)

Отправлено: 21:30, 26-03-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Kot86, в том виде, как Вы предполагаете — нет, не существует.

Единственно возможный путь — добавить в конфигурацию перечня ОС для загрузки новую строку, осуществляющую загрузку в безопасный режим, сделать её умолчальной, добавить в реестр однократный запуск команд, убирающих эту строку из конфигурации загрузки и возвращающей предыдущее умолчание, и перезагрузиться. После перезагрузки произойдёт загрузка в безопасный режим, тут же отработают команды на возвращение предыдущего поведения. Примерно так: vbscript - How do I restart a computer in safe mode with a Windows script? - Stack Overflow.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:31, 26-03-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Kot86

Старожил


Сообщения: 226
Благодарности: 27

Профиль | Отправить PM | Цитировать


Iska, благодарю! То, что нужно! Только запускать надо от админа, иначе идёт простой ребут.
P.S. Я так понимаю, что это
Код: Выделить весь код
:ver_nt5x
:Run Windows 2000/XP specific commands here
bootcfg /raw /a /safeboot:network /id 1
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
SHUTDOWN -r -f -t 05
goto end
можно вырезать для Windows 7?

Отправлено: 01:46, 27-03-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Kot86, я не проверял код.

Отправлено: 03:51, 27-03-2015 | #4


Аватара для Kot86

Старожил


Сообщения: 226
Благодарности: 27

Профиль | Отправить PM | Цитировать


В общем, сделал под все версии Windows (от Win2000 до Win10). Выглядит это так:
REBOOT.bat
PHP код: Выделить весь код

Echo Off

REM Check Windows Version
ver 
findstr /"5\.0\." nul
IF %ERRORLEVELEQU 0 goto ver_nt5x
ver 
findstr /"5\.1\." nul
IF %ERRORLEVELEQU 0 goto ver_nt5x
ver 
findstr /"5\.2\." nul
IF %ERRORLEVELEQU 0 goto ver_nt5x
ver 
findstr /"6\.0\." nul
IF %ERRORLEVELEQU 0 goto ver_nt6x
ver 
findstr /"6\.1\." nul
IF %ERRORLEVELEQU 0 goto ver_nt6x
ver 
findstr /"6\.2\." nul
IF %ERRORLEVELEQU 0 goto ver_nt6x
ver 
findstr /"6\.3\." nul
IF %ERRORLEVELEQU 0 goto ver_nt6x
ver 
findstr /"10\.0\." nul
IF %ERRORLEVELEQU 0 goto ver_nt10x
goto warn_and_exit

:ver_nt5x
:Run Windows 2000/XP specific commands here
bootcfg 
/raw //safeboot:network /id 1
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce 
/"*UndoSB" /t REG_SZ /"bootcfg /raw /fastdetect /id 1"
SHUTDOWN ---t 03
goto end

:ver_nt6x
:Run Windows Vista/7/8/8.1 specific commands here
bcdedit 
/set {currentsafeboot network
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce 
/"*UndoSB" /t REG_SZ /"bcdedit /deletevalue {current} safeboot"
SHUTDOWN ---t 03
goto end

:ver_nt10x
:Run Windows 10 specific commands here
bcdedit 
/set {currentsafeboot network
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce 
/"*UndoSB" /t REG_SZ /"bcdedit /deletevalue {current} safeboot"
SHUTDOWN ---t 03
goto end

Echo On

:warn_and_exit
echo Machine OS cannot be determined.

:
end 


Запускать нужно от имени администратора.

Также можно вызывать "батник" с помощью VBS-скрипта, тогда запуск от администратора не потребуется, но нужно будет подтвердить предупреждение UAC:
REBOOT.vbs
PHP код: Выделить весь код

Dim oShellreturnCode
Set objShell 
CreateObject("Shell.Application")
Set oShell WScript.CreateObject("WScript.Shell")

returnCode oShell.Popup("Do you want to restart your computer in Safe Mode"0"Restart In Safe Mode"48 256)

Select Case returnCode
case 6, -1
    objShell
.ShellExecute "REBOOT.bat""""""runas"0
    
case 7
    oShell
.popup "Operation Canceled"0"Restart In Safe Mode"64 0
End Select 


В данном случае эти два файла должны находиться в одной папке (например, на рабочем столе).

Чтобы была возможность запускать эти файлы из разных папок, нужно лишь в файле REBOOT.vbs указать путь до файла REBOOT.bat.
Пример: кидаем файл REBOOT.bat в корень диска D:, получается D:\REBOOT.bat
Открываем блокнотом файл REBOOT.vbs и в строке
PHP код: Выделить весь код

objShell.ShellExecute "REBOOT.bat""""""runas"

меняем "REBOOT.bat" на "D:\REBOOT.bat"

Получаем
PHP код: Выделить весь код

objShell.ShellExecute "D:\REBOOT.bat""""""runas"

Сохраняем, пользуемся.

P.S. Спасибо Iska за ссылку!

Последний раз редактировалось Kot86, 27-03-2015 в 07:31.

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:21, 27-03-2015 | #5

MKN MKN вне форума

Ветеран


Сообщения: 2381
Благодарности: 565

Профиль | Отправить PM | Цитировать


Как подкорректрировать вышеприведённый REBOOT.bat для выполнения следующей задачи ? :

Запускаем cmd (bat) файл из обычной среды Win7-10,
компьютер перезагружается в режим SafeMode,
применяется рег твик из внешнего reg файла (или из того же запускаемого cmd )
компьютер перезагружается,
и загружается обычным образом ОС, с применёнными изменениями в реестре

Отправлено: 11:46, 26-08-2015 | #6


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
Единственно возможный путь — добавить в конфигурацию перечня ОС для загрузки новую строку, осуществляющую загрузку в безопасный режим, сделать её умолчальной, добавить в реестр однократный запуск команд, убирающих эту строку из конфигурации загрузки и возвращающей предыдущее умолчание, и перезагрузиться. После перезагрузки произойдёт загрузка в безопасный режим, тут же отработают команды на возвращение предыдущего поведения. »
Вот тут все написано. Вместе с отработкой команды на возврат стандартного запуска можно впихнуть этот твик.

Отправлено: 12:10, 26-08-2015 | #7

MKN MKN вне форума

Ветеран


Сообщения: 2381
Благодарности: 565

Профиль | Отправить PM | Цитировать


А что такое - "*UndoSB" ?

Последний раз редактировалось MKN, 26-08-2015 в 16:56.


Отправлено: 15:35, 26-08-2015 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата MKN:
А что такое - "*UndoSB" ? »
Насколько я понимаю — абсолютно произвольно взятое имя параметра.

Отправлено: 16:10, 26-08-2015 | #9

MKN MKN вне форума

Ветеран


Сообщения: 2381
Благодарности: 565

Профиль | Отправить PM | Цитировать


Elven,
Цитата:
тут же отработают команды на возвращение предыдущего поведения
После запуска REBOOT.bat - SafeMode и никакой принудительной перезагрузки для возвращения в исходное состояние...
ОС - Win10Pro x64.. Запуск от имени админа. В чём может быть дело ?

Последний раз редактировалось MKN, 26-08-2015 в 18:03.


Отправлено: 17:47, 26-08-2015 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перезагрузка компьютера в безопасный режим с помощью скрипта

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Загрузка - [решено] безопасный режим 9119 Microsoft Windows 8 и 8.1 4 16-11-2013 03:06
Разное - [решено] Безопасный режим. ILYa Microsoft Windows 2000/XP 1 15-11-2010 00:54
безопасный режим? s0ldier Непонятные проблемы с Железом 7 05-07-2008 14:03
Ошибка - Безопасный режим, фиксинг noobos Microsoft Windows 2000/XP 4 15-11-2007 19:56
Куда подевался Безопасный режим? Skayk Хочу все знать 2 27-02-2007 23:43




 
Переход