![]() |
Есть ли аналог autoexec.bat в Windows XP?
Задача такова - мне нужно производить пару операций с парой папок до запуска Windows.
Autoexec.bat хоть и есть в корне диска С:, но он пустой и всё, что я туда пишу по ходу дела не выполняется (или выполняется?). Добавление записи в autoexec.nt также ни к чему не привело. Собственно, вопрос: возможно ли Цитата:
|
Цитата:
|
В Win98 была замечательная фишка - прописать в autoexec.bat три строчки:
deltree C:\Recycled md C:\Recycled set temp C:\Recycled таким образом корзина становилась хранилищем временных файлов и автоматически очищалась при каждой перезагрузке. Но мне не это нужно. Просто допустим я создаю папку с оригинальным названием С:\1, прописываю в autoexec rd С:\1 /q перезагружаюсь, и ноль эмоций - папка на месте. Не переживайте, не вирус я пишу и не шутку какую. Просто действительно самому интересно. |
tft701, почему бы не добавить батник в обычную автозагрузку?
|
Petya V4sechkin, слушайте, в обычную автозагрузку я и полноценную программу могу написать и засунуть. А мне нужно именно перед запуском Windows. Да, совсем перед запуском. Так это возможно или нет?
|
autoexec.bat в XP не работает. Он там лежит для совместимости с досовскими программами. И перед запуском XP никакой DOS не запускается.
Копайте в сторону написания модуля для первоначального загрузчика (не помню как точно называется). Так работают, например, boot-time дефрагментаторы. Полезная ссылка. Поможет поиск по словосочетанию "Native API". P.S.: А в HKLM ключик с командой добавить не проще? |
Цитата:
или в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute ? Мне до запуска Винды сделать всё нужно, до! Реестр тут не поможет, ИМХО. |
Сходу в голову приходит только какой-нибудь линукс, грузящийся с помощью bootpart, делающий необходимые операции и, на прощание, изменяющий boot.ini для загрузки Windows после ребута.
-------------------------------- А, так, кладём на диск C файл rm.cmd: Код:
@echo off ------------ А в BootExecute выполняются программы написанные на Native API, но происходит это уже формально после начала загрузки Windows. ------------- Мне сам вопрос не понятен. Чтобы что-то удалить с диска, но без ОС, нужна другая ОС, которая это сделает. |
Цитата:
Во всех версиях Windows NT "До запуска Винды" ничего не загружается. Нет там никакого "доса". Единственное, что загружается - это "начальный загрузчик" (файл ntldr в корне системного диска), который считывает файл boot.ini и позволяет пользователю выбрать одну из нескольких операционных систем и режим её запуска. Всё. При очень большом желании можно попытаться заменить начальный загрузчик своим, но последствия такого шаманизма будут непредсказуемы :) |
Цитата:
|
Цитата:
|
Цитата:
http://bugtraq.ru/cgi-bin/forum.mcgi...&b=21&m=104923 http://antsar.info/lekarstvo-dlya-zagruzchika |
tft701, быть может решением задачи станет применениям родных для smss.exe (Session Manager) приложений?
Запуск процесса до авторизации пользователя Решение с загрузчиком интересное, но кто обеспечит распознание файловой системы? Даже если, в разрез с рекомендациям, применяется простенькая FAT. |
eryoma, интересная информация.. Но сначала попробую разобраться с Native API
Admiral, спасибо! Вот как раз этим я и займусь в свободное время! =) Как только получится из этого что-то более-менее путёвое, поставлю тему решённой, всем спасибо! |
Цитата:
|
K.A.V., а они же исполняются только при попытке запуска 16-разрядной подсистемы (эмуляция DOS) и на Win32 вообще никакого влияния не оказывают.
|
Ещё вариант: Можно написать простой экзешник и запускать его в качестве службы с помощью srvany.exe. Или прямо службу написать (в Delphi, например, есть шаблон).
Статья про необычные методы автозапуска. |
Цитата:
|
Удивительно, что сам вопрос о потребности запускать программу на выполнение ДО начала загрузки Win-XP с носителя, большинству незнаком.
А ситуация может быть такой, что носителя-то и нет вовсе! Например, неисправен. Как неисправен? Да кто как сумеет его сделать неисправным. Правда, оставив себе программу, которая при запуске сделает диск исправным. А поместит он ее на флешку или еще куда, вот и запустить ее надо будет перед запуском XP. И все это без DOS, который NTFS не понимает. Конкретно, ситуация м.б. еще сложнее: носитель лишь один и он гарантированно позволяет читать MBR, Partition Table, NTLoader, NTDetect, Boot.ini и, например, chkdsk.exe + cmd.cmd. Как известно, chkdsk.exe устанавливает ERRORLEVEL равным 0 только в том случае, когда диск не содержал ошибок любого вида. Если предположить, что есть тот же диск, который во всем остальном, кроме упомянутых файлов, содержит ошибки, и по наступлению некого события перестает их содержать, то цикл постоянных проверок с помощью chkdsk.exe можно на этом закончить и продолжить загрузку XP, как если бы ничего не случилось — согласитесь, ведь нелогично пускать его грузиться с неисправного диска? Вернее, пока он был неисправен. А теперь исправен: не важно с параметром /F или без него пускали chkdsk.exe — у каждого своя ситуация. Причем у большинства будет такая, что с параметром придется — вот и этим найденное нами решение тоже пригодится... Какие будут идеи? |
Reult, а теперь всё то же самое, но по-русски :)
|
Мне требовалось запускать скрипт, перезаписывающий юзеровский ntuser.dat из эталона до входа юзера в систему
(каждый раз при старте). Я решил задачу с помощью gpedit.msc и скрипта (*.cmd) В пункте "конфигурация windows>сценарии" указал файл скрипта (*.Cmd), содержащий : -------------------------------- @echo off c:\windows\system32\xcopy "C:\Documents and Settings\Default User\Ntuser.dat" "C:\Documents and Settings\User\Ntuser.dat" /H /R /K /Y /X /Q --------------------------------- после этого User'ы могут ломать свой реестр в своё удовольствие. политики прописываются в HKLM и (зачем-то) ещё дублируются в папке "system32\GroupPolicy". Но вот сделать то же самое с общим реестром (\system32\config\system) этим способом не получится. Значит, нужен способ запуска из ntldr (linux неинтересно, т.к. минимум полминуты лишних на загрузку ядра) не верьте про службы -они запускаются ПОСЛЕ логина. Также микрософт брешет про планировщик ("запускать при старте компьютера"). Никакие "патентованные" способы и автоэкзеки не помогут. |
Время: 20:55. |
Время: 20:55.
© OSzone.net 2001-