Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 2000/XP (http://forum.oszone.net/forumdisplay.php?f=6)
-   -   Выполнение DOS команд перед загрузкой Windows (http://forum.oszone.net/showthread.php?t=87304)

Gof 19-07-2007 20:44 616028

Выполнение DOS команд перед загрузкой Windows
 
Уважаемые, подскажите, плз.
Дано: Windows PE/XP/Vista загружаемая по сети (PXE) + 2 Dos приложения, хранимые на локальном жестком диске.
Нужно: Из под Windows (загруженой по сети) перезагрузить систему (Restart) и перед загрузкой системы (с жесткого диска) (снова Windows XP/Vista) выполнить ряд команд в виде Dos_приложение.exe_/ключ_/ключ после этого перезагрузить комп и загрузиться с системы на жестком диске.
Это вообще возможно???

Vadikan 20-07-2007 00:38 616116

Gof
А вы пробовали уже что-то? Батник с командами типа start и shutdown может?

Gof 20-07-2007 11:04 616236

Пробовал. Но ведь БАТник не может инициализировать команды под Виндой потом ее выключить и продолжить выполнение этих команд. Или я ошибаюсь?

Vadikan 20-07-2007 11:29 616260

Цитата:

Цитата Gof
Но ведь БАТник не может инициализировать команды под Виндой потом ее выключить

может
Цитата:

Цитата Gof
и продолжить выполнение этих команд.

в выключенном состоянии - нет, но после перезагрузки да, если перед ней в RunOnce прописать нужную команду или батник. Это обеспечит выполнение команд только один раз при следующем входе в систему.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce - для текущего пользователя
HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce - для любого пользователя, первым вошедшего в систему.

Для импорта параметров реестра из командной строки используйте REG ADD /?

amel27 20-07-2007 12:02 616288

Цитата:

Цитата Gof
Но ведь БАТник не может инициализировать команды под Виндой потом ее выключить и продолжить выполнение этих команд. Или я ошибаюсь?

ну... способов можно много насочинять, главное чтобы батник имел возможность сохранить свое состояние перед перезагрузкой (к примеру, на жестком диске), после которой распознать состояние и продолжить, например:
Код:

@Echo Off
If Not Exist %~n0.ini Echo STATE=0 >%~n0.ini
For /f "Delims=" %%i in (%~n0.ini) Do Set /A %%i+0
If %STATE% EQU 0 (
        Call :PreBoot
        Echo STATE=1 >%~n0.ini
        Rem shutdown -r -f -t 0
)
If %STATE% EQU 1 (
        Call :PostBoot
        Echo STATE=0 >%~n0.ini
        Rem shutdown -r -f -t 0
)
Exit

:PreBoot
        Echo Тут команды ДО перезагрузки.
GoTo :EOF

:PostBoot
        Echo Тут команды ПОСЛЕ перезагрузки.
GoTo :EOF

З.Ы. Кстати, если состояние реестра сохраняется между перезагрузками - как альтернативу можно использовать ветку реестра "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx", команды которой выполняются и удаляются последовательно, а неисполненные ждут своей очереди независимо от количества встретившихся перегрузок.

Gof 20-07-2007 18:01 616446

amel27 А что значит ДО и ПОСЛЕ перезагрузки.
Куда поместить команду? Например, мне нужно, чтобы система обновила БИОС. Т.е. что-то такое запустить, что перезагрузит Винду и после прохождения всех проверок запустит DOS приложение, размещенное на жестком диске, которое и обновит БИОС. После этого, нужно чтобы система перезагрузилась снова и началась нормальная загрузка в Windows.
И второй вопрос. А будет ли доступ к диску, без загрузки дополнительных драйверов, если он отформатирован в NTFS?

Vadikan 20-07-2007 20:17 616485

Цитата:

Цитата Gof
Т.е. что-то такое запустить, что перезагрузит Винду и после прохождения всех проверок запустит DOS приложение, размещенное на жестком диске, которое и обновит БИОС.

А сразу нельзя было сказать, что именно требуется сделать? Почему-то считается, что лучше задать абстрактный вопрос и потом подталкивать отвечающих к корректировке ответов в соответствии с собственными запросами. На конкретный же вопрос ответ следует конкретный сразу: нет.

Gof 20-07-2007 20:41 616494

Vadikan А можно ответить в чем принципиальная разница?

Vadikan 21-07-2007 03:06 616669

Gof
Ну так вы же хотите из чистого DOS'а выполнять обновление BIOS, так? Я делаю вывод об этим из вопроса
Цитата:

Цитата Gof
А будет ли доступ к диску, без загрузки дополнительных драйверов, если он отформатирован в NTFS?

Очевидно, вы планируете выполнить загрузку в DOS для выполнения некоей операции и логично озабочены проблемой, которую обычно решают с "NTFS 4 DOS". Однако в таком случае незагруженная ОС Windows не может определять поведение загруженной ОС DOS. Поэтому такую операцию автоматизировать средствами Windows невозможно.

Если существует возможность прошивки BIOS из под Windows, то задачу можно автоматизировать.

Gof 21-07-2007 13:31 616782

Возможность сделать это из под Windows имеется. Но не совсем из под Windows. Запускается win приложение, которое запрашивает расположение прошивки, после этого перезагружает систему и прошивает BIOS. Дальше запускается система. Но вот в промежуток между окончанием прошивки и запуском системы нужно запустить прошивку SMBIOS полей SLP2.0.

На всякий случай напишу основные этапы тех. процесса:
1. Запуск "голого" компа и загрузка WinPE с удаленного сервера.
2. Из под WiPE заливается система на жесткий диск машины, драйвера и прочая софтина.
3. Помледним этапом из под WinPE - инициализация процесса перешивки BIOS.
4. Перезагрузка система и прошивка BIOS.
5. Запуск Vista с жесткого диска (была залита через WinPE).

И хотелось бы найти вариант чтобы между 4 и 5 пунктом еще раз модифицировать BIOS, точнее SMBIOS.

amel27 22-07-2007 07:47 617036

Gof
Цитата:

Цитата Gof
На всякий случай напишу основные этапы

без указания платформы и цели мероприятия толку от этих "подробностей" мало

Gof 22-07-2007 12:17 617083

Платформа - десктопные компы на база Intel.
Цель - автоматизировать процесс обновления BIOS и прошивки SLP2.0.

amel27 22-07-2007 16:20 617116

Цитата:

Цитата Gof
Платформа - десктопные компы на база Intel

Прибегнув к телепатии догадался, что имелась ввиду программа "Intel Express BIOS Update", ведь именно она инициирует перезагрузку?.. в таком случае инициализация и перепрошивка должны проводиться из под одной ОС, т.е. уже из под Vista. К сожалению, на этом мои тлепатические способности исчерпались, чем перепрошивается SLP?

Gof 23-07-2007 20:20 617623

Извиняюсь за "телепатию".
Express BIOS Update запускается из под WindowsPE. Потом WinPE выключается, BIOS перешивается и запускается Vista. А SLP перешивается DOS-овской утилитой.

amel27 24-07-2007 06:03 617744

ну может и PE достаточно если Express ничего не пишет в реестр (сам не пользовал)... а для автоматизации DOS нужно иметь на HDD загрузочный FAT раздел, который будет содержать boot.ini первоначально настроенный на DOS и после перепрошивки заменяемый на загрузку WIN


Время: 20:28.

Время: 20:28.
© OSzone.net 2001-