Показать полную графическую версию : Есть ли аналог autoexec.bat в Windows XP?
Задача такова - мне нужно производить пару операций с парой папок до запуска Windows.
Autoexec.bat хоть и есть в корне диска С:, но он пустой и всё, что я туда пишу по ходу дела не выполняется (или выполняется?).
Добавление записи в autoexec.nt также ни к чему не привело. Собственно, вопрос: возможно ли
производить пару операций с парой папок до запуска Windows?
Petya V4sechkin
03-02-2010, 19:54
нужно производить пару операций с парой папок до запуска Windows
Совсем до запуска? Какие операции, с какими папками?
В Win98 была замечательная фишка - прописать в autoexec.bat три строчки:
deltree C:\Recycled
md C:\Recycled
set temp C:\Recycled
таким образом корзина становилась хранилищем временных файлов и автоматически очищалась при каждой перезагрузке.
Но мне не это нужно. Просто допустим я создаю папку с оригинальным названием С:\1, прописываю в autoexec
rd С:\1 /q
перезагружаюсь, и ноль эмоций - папка на месте. Что курить Куда писать, чтобы работало?
Не переживайте, не вирус я пишу и не шутку какую. Просто действительно самому интересно.
Petya V4sechkin
03-02-2010, 20:50
tft701, почему бы не добавить батник в обычную автозагрузку?
Petya V4sechkin, слушайте, в обычную автозагрузку я и полноценную программу могу написать и засунуть. А мне нужно именно перед запуском Windows. Да, совсем перед запуском. Так это возможно или нет?
Grabber2006
03-02-2010, 21:43
autoexec.bat в XP не работает. Он там лежит для совместимости с досовскими программами. И перед запуском XP никакой DOS не запускается.
Копайте в сторону написания модуля для первоначального загрузчика (не помню как точно называется). Так работают, например, boot-time дефрагментаторы.
Полезная ссылка (http://www.lookinfo.org/2007/08/05/jetapy_zagruzki_windows_xp.html).
Поможет поиск по словосочетанию "Native API".
P.S.: А в HKLM ключик с командой добавить не проще?
HKLM ключик с командой добавить не проще? »
и куда, позвольте поинтересоваться, его добавлять? Уж не в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run ли?
или в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute ?
Мне до запуска Винды сделать всё нужно, до! Реестр тут не поможет, ИМХО.
Grabber2006
03-02-2010, 22:52
Сходу в голову приходит только какой-нибудь линукс, грузящийся с помощью bootpart (http://www.winimage.com/bootpart.htm), делающий необходимые операции и, на прощание, изменяющий boot.ini для загрузки Windows после ребута.
--------------------------------
А, так, кладём на диск C файл rm.cmd:
@echo off
rmdir C:\1 /s /q
del C:\rm.cmd /f /q
Прописываем в вышеупомянутой ветке C:\rm.cmd и вуаля :)
------------
А в BootExecute выполняются программы написанные на Native API, но происходит это уже формально после начала загрузки Windows.
-------------
Мне сам вопрос не понятен.
Чтобы что-то удалить с диска, но без ОС, нужна другая ОС, которая это сделает.
El Scorpio
04-02-2010, 05:57
Мне до запуска Винды сделать всё нужно, до! Реестр тут не поможет, ИМХО. »
Объясняю популярно
Во всех версиях Windows NT "До запуска Винды" ничего не загружается. Нет там никакого "доса".
Единственное, что загружается - это "начальный загрузчик" (файл ntldr в корне системного диска), который считывает файл boot.ini и позволяет пользователю выбрать одну из нескольких операционных систем и режим её запуска. Всё.
При очень большом желании можно попытаться заменить начальный загрузчик своим, но последствия такого шаманизма будут непредсказуемы :)
При очень большом желании можно попытаться заменить начальный загрузчик своим »
А это интересно. Но слишком сложно и непредсказуемо. Всё же попробую поразбираться в свободное время)
Grabber2006
05-02-2010, 08:37
При очень большом желании можно попытаться заменить начальный загрузчик своим »
Ммм, загрузчик будет удалять папку?
Цитата El Scorpio:
При очень большом желании можно попытаться заменить начальный загрузчик своим »
А это интересно. Но слишком сложно и непредсказуемо. Всё же попробую поразбираться в свободное время) »
Попалось сегодня, - может окажется полезным:
http://bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=21&m=104923
http://antsar.info/lekarstvo-dlya-zagruzchika
tft701, быть может решением задачи станет применениям родных для smss.exe (Session Manager) приложений?
Запуск процесса до авторизации пользователя (http://forum.oszone.net/showthread.php?t=96959)
Решение с загрузчиком интересное, но кто обеспечит распознание файловой системы? Даже если, в разрез с рекомендациям, применяется простенькая FAT.
eryoma, интересная информация.. Но сначала попробую разобраться с Native API
Admiral, спасибо! Вот как раз этим я и займусь в свободное время! =)
Как только получится из этого что-то более-менее путёвое, поставлю тему решённой, всем спасибо!
Есть ли аналог autoexec.bat в Windows XP? »
А как же файлы autoexec.nt и config.nt в C:\WINDOWS\system32 ?
K.A.V., а они же исполняются только при попытке запуска 16-разрядной подсистемы (эмуляция DOS) и на Win32 вообще никакого влияния не оказывают.
Grabber2006
07-02-2010, 14:34
Ещё вариант: Можно написать простой экзешник и запускать его в качестве службы с помощью srvany.exe (http://support.microsoft.com/kb/137890). Или прямо службу написать (в Delphi, например, есть шаблон).
Статья про необычные методы автозапуска. (http://www.xakep.ru/magazine/xa/081/118/1.asp)
El Scorpio
08-02-2010, 04:42
Цитата El Scorpio:
При очень большом желании можно попытаться заменить начальный загрузчик своим »
Ммм, загрузчик будет удалять папку? »
Для этого нужно будет самому писать код поддержки файловой системы - ведь стандартные драйвера операционной системы он использовать не может
Удивительно, что сам вопрос о потребности запускать программу на выполнение ДО начала загрузки 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 — у каждого своя ситуация. Причем у большинства будет такая, что с параметром придется — вот и этим найденное нами решение тоже пригодится...
Какие будут идеи?
El Scorpio
15-02-2010, 03:01
Reult, а теперь всё то же самое, но по-русски :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.