Показать полную графическую версию : Маленькие хитрости автоустановки
Страниц :
1
2
3
4
5
6
7
8
9
[
10]
11
pupsicas
16-02-2008, 23:12
Спасибо тебе boss911, добрый человек.
Такой вопрос: Если я на этапе отработки svcpack.inf запущу reg-файлик с таким ключом [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce]
"111"="%systemdrive%\1\installs.cmd"
то запись в реестр добавится или нет? Под установленной виндой чего-то не добавляется. :( Просто надо добавить эту строчку при установке аддона из SVCPACK и через winnt.sif и т.п., понятное дело, это делать неприемлимо...
Может кому пригодится маленькая програмка для перезагрузки компа?
Только куда слить не знаю.
90 кило. Так для себя наваял. Все тихо и без всяких предупреждений система уходит в ребут.
"111"="%systemdrive%\1\installs.cmd" »IMHO переменные должны вноситься в другой тип -- не в REG_SZ (строку), а в REG_EXPAND_SZ...
"reg /?" как вариант
Droperidolum
29-02-2008, 05:19
Если я правильно понял, то здесь (http://forum.oszone.net/post-499097-82.html) было указано что подобный батник (в оригинале применяемый для CD-Rom и далее оптимизированный) можно применить и к назначению букв разделов на жёстком диске.
Можно поподробнее для неграмотных?
Скажем есть 4 раздела впорядке их расположения - Pagefile (active), System, Bench, Data, ну они после установки превращаются в C- Pagefile, D- System, E- Bench, F- Data. А надо чтобы было C - System, D - Data, E- Bench, P -Pagefile.
Желательно это сделать в процессе установки, но с удовольствием попробую способ как это сделать на уже установленной винде.
Запуск исполняемого файла или пакетного файла с CD/DVD через svcpack.inf при первой загрузке:
(под редакцией Vadikan'a)
Создаем CMD файл (например в блокноте)
:: Укажите путь к папке, в которой находится исполняемый файл, относительно корня компакт-диска
SET folder=install
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set exepath=%%i:\%folder%
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY%\999 /V 1 /D "%exepath%\file.exe" /f
Сохраняем как runonceex.cmd и копируем в папку I386\SVCPACK
Теперь в файле svcpack.inf в секции [SetupHotfixesToRun] прописываем название созданного нами файла. Также в секции [SetupData] параметр CatalogSubDir должен иметь такое значение "\I386\SVCPACK"
[Version]
Signature="$Windows NT$"
[SetupData]
CatalogSubDir="i386\SVCPACK"
[ProductCatalogsToInstall]
[SetupHotfixesToRun]
runonceex.cmd
Наш файл запустится на T13 (за 13 минут до конца установки) и добавит ключ в реестр в секцию RunOnceEx. И при первой загрузке системы с вашего установочного диска запустится испонительный или пакетный файл, который мы указали в созданном нами файле.
Примечания:
1. В строке
SET folder=install
на свои значения можно поменять следующее:
Здесь нужно указать свой путь к дирректории, которая будет содержать файл, запускаемый нами при первом в ходе в систему (при этом SET folder не трогаем).
2. В строке
REG ADD %KEY%\999 /V 1 /D "%exepath%\file.exe" /f
можно поменять название файла file.exe на имя файла, который будем запускать после установки (файл может буть не только исполнительным, но и пакетным (.cmd или .bat).
Применение:
1. Можно для запуска программы установки приложений (например WPI (http://forum.oszone.net/thread-46483.html) ).
2. Для удаления ненужных файлов и папок после установки ОС без использования папок OEM (см. следующий мой пост)
Удаление ненужных файлов и папок после установки ОС через svcpack.inf
1. Создается пакетный файл для удаления (как это сделать (http://oszone.net/6159))
2. Копируем этот файл в дирректорию, которая будет находится на компакт-диске.
3. Теперь создаем CMD файл по принципу, указанному в предыдущем посте (чтобы наш пакетный файл запустился при первой загрузке, и ненужные файлы и папки удалились).
Master Fess, так может сразу сделать
:: Укажите путь к папке, в которой находится исполняемый файл, относительно корня компакт-диска
SET folder=install
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set exepath=%%i:\%folder%
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY%\999 /V 1 /D "%exepath%\file.exe" /f
И желательно привести пример файла svcpack.inf, чтобы было наглядно, где и что прописано.
По поводу Удаление ненужных файлов и папок после установки ОС без использования папок OEM » получается похоже на ...игла в яйце, яйцо в утке, утка в зайце... (с)
:) Зачем пакетный файл в SFX помещать?
Добавлена статья Использование файла svcpack.inf для установки программ и импорта твиков реестра (http://oszone.net/6724). Я код упростил немного и добавил информацию об импорте твиков. Замечания/предложения?
Замечания/предложения? »
:: Определяем букву компакт-диска
SET CDROM=%~d0
Иногда не срабатывает, см. здесь (http://forum.oszone.net/thread-92607-4.html)
Иногда не срабатывает »
Понятно, но тогда точно так же не сработает и for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist в случае нахождения доп. дисковых устройств после Т13/Т12. То есть та же проблема будет наблюдаться и в Запуск RunOnceEx с CD (http://oszone.net/2805). Можно примечание добавить в обе статьи, поскольку setenv описана тут (http://oszone.net/3673#create)
Vadikan, А Вы пробовали так сказать вскрывать аддон SetEnvCD? Дело в том что весь аддон состоит из вот этого CMD файла
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set CDROM=%%i:
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v cdrom /d %CDROM% /f
Так если Понятно, но тогда точно так же не сработает и
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist »
Тогда и SetEnv не сработает :)
Master Fess, гм... я не продумал этот вопрос. Получается, что если буквы дисков смещаются после Т-12, то и "постоянная" переменная будет указывать на неверную букву.
Меня вообще смущает момент с этими "дисковыми устройствами", я просто положился на "опыт сообщества". В моем представлении система сначала назначает буквы жестких дисков, затем оптических, и наконец съемных. На Т-12 жесткие и оптические должны уже определиться, поэтому я не совсем представляю, как впоследствии найденные устройства могут вклиниться перед уже определенной буквой CD/DVD привода... Я с таким не сталкивался... Однако это не означает, что такого не происходило никогда. У кого-то есть реальные примеры?
Vadikan, Я тоже не представляю себе как это может случится.
Я почитал [addon] SetEnvCD (http://forum.oszone.net/thread-92607.html) - там таких примеров хватает. В общем, я примечание исправлю, а обсуждение назначения буквы CD-ROM в таких условиях логично продолжить в теме аддона, раз уже там отправили полсотни постов.
Vadikan, По статье. Проблема с переназначением после перезагрузки я так понял присутствует в обоих случаях. Но предложенный вами вариант также иногда не работает на двухъядерных компьютерах (по указанной Drinko выше ссылке). Так что мой вариант будет более пригодным.
Код:
SET KEY=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder
REG DELETE %KEY%
REG ADD %KEY%
REGPERM /K %KEY% /A:Everyone:R /Q
После применения REGPERM сортировка всё равно не фиксируется. А всё потому, что права не наследуются. Попытка задать наследование вручную заканчивается сообщением о невозможности выполнить действие.
После применения REGPERM сортировка всё равно не фиксируется. »
У меня все чудесно фиксировалось и работало на протяжении многих месяцев. Тестировать сейчас не могу, т.к. уже давно на Vista работаю. Предлагайте альтернативное решение...
У меня все чудесно фиксировалось и работало на протяжении многих месяцев »
Тады на какой стадии ставил? T-12? Если да, то каков порядок, что должно быть обязательно после команды, а что до?
Кстати, у REGPERM есть ключ /R.
Предлагайте альтернативное решение... »
Завтра восстановлю состояние VPC, продолжу установку, проверю.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC