Показать полную графическую версию : Маленькие хитрости автоустановки
Страниц :
[
1]
2
3
4
5
6
7
8
9
10
11
Маленькие хитрости автоустановки
Доброго времени суток!
Предлагаю собирать в этой теме маленькие хитрости, которые мы используем при создании диска автоустановки Windows (и приложений). Это могут быть скрипты или их элементы, утилиты с очень кратким описанием и примерами использования и т.д. Короче, всякие мелочи, которые упрощают вам жизнь и используются для оригинального решения различных задач во время автоустановки.
Если у вас есть под рукой источник, из которого вы почерпнули трюк, опубликуйте его - возможно, кто-то захочет получить дополнительную информацию из первоисточника. Если речь идет об утилите, то желательно дать ссылку на домашнюю страницу или любую другую страницу, откуда можно загрузить последнюю версию. [hr]
На сайте (new!):
Пауза в пакетном файле (http://oszone.net/6160)
Скрытие консольных окон (http://oszone.net/6156)
Добавление папки в PATH (http://oszone.net/6157)
Добавление собственных курсоров (http://oszone.net/6158)
Закрепление ярлыков в меню "Пуск" (http://oszone.net/6166)
Создание ярлыков при установке ОС (http://oszone.net/6161)
Перезагрузка компьютера из командной строки (http://oszone.net/6165)
Сортировка программ в меню "Пуск" по алфавиту (http://oszone.net/6162)
Создание собственного OEM-ярлыка в меню "Пуск" (http://oszone.net/6477)
Удаление ненужных файлов и папок после установки ОС (http://oszone.net/6159)
Задание собственной темы оформления из командной строки (http://oszone.net/6163)
Добавление ярлыков в панель быстрого запуска (Quick Launch) (http://oszone.net/6164) (обсуждение (http://forum.oszone.net/thread-44943.html))
Применение твиков реестра ко всем учетным записям после установки ОС (http://oszone.net/6167)
Использование файла svcpack.inf для установки программ и импорта твиков реестра (http://oszone.net/6724)
В Wiki:
RunOnceEx.cmd Creator (http://wiki.oszone.net/index.php/RunOnceEx.cmd_Creator)
Изменение OEM информации (http://wiki.oszone.net/index.php/Изменение_OEM_информации) (обсуждение (http://forum.oszone.net/thread-49452.html))
Простой способ заменить Boot Screen (http://wiki.oszone.net/index.php/Простой_способ_заменить_Boot_Screen)
[hr]Локальные правила темы Публикуйте каждую хитрость отдельным сообщением. Так будет легче сослаться на пост, если возникнет необходимость дать ссылку в другой ветке.
Не нужно публиковать в теме твики реестра, за исключением тех случаев когда твик является неотъемлемой частью хитрости. Для твиков прикреплена отдельная тема.
Не нужно задавать вопросы, не относящиеся к опубликованным в теме материалам. Если вы хотите что-то осуществить, но не знаете как - воспользуйтесь правилами создания тем на форуме. Такие вопросы будут удаляться без сожаления.
Пауза в пакетном файле (http://wiki.oszone.net/index.php/Пауза_в_пакетном_файле)
Перезагрузка компьютера (http://wiki.oszone.net/index.php/Перезагрузка_компьютера)
Добавление папки в PATH (http://wiki.oszone.net/index.php/Добавление_папки_в_PATH)
Скрываем консольные окна (http://www.oszone.net/6156)
Как назначить переменную папке C:\Documents and Settings
Пожалуй, самый короткий путь предложил EgOrus здесь (http://forum.oszone.net/showpost.php?p=374160&postcount=12):SET dir=%AllUsersProfile%
SET mydir=%dir:~0,-10%Первая строка создает переменную dir равную %AllUsersProfile%. Последняя в свою очередь разбирается как Х:\Documents and Settings\All Users (Х - буква диска). Вторая строка создает переменную mydir, которая получена вырезанием из переменной dir нуля (0) символов с начала и десяти (10) символов с конца. Строго говоря, ноль можно было опустить. Если отнять от Х:\Documents and Settings\All Users последние десять символов, то и получится искомая переменная X:\Documents and Settings
Данная переменная действительна только в течении данной cmd сессии и не является постоянной.
Как назначить переменную папке C:\Documents and Settings (II)
Есть проблема, которая может возникнуть при использовании предыдущего метода: папка %ALLUSERSPROFILE% была перемещена с какой-либо целью. В таком случае, путь к директории профилей может оказаться ложным. Тогда надо брать значение из реестра. Зайдите в ветку реестра и посмотрите какие там значения параметров. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileListИх можно использовать@echo off
:: Get the profiles directory from the registry
for /f "usebackq tokens=3,3* delims== " %%i in (`reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory`) do set profiles=%%i
:: Set the profiles dir as %profiles%
for /f "usebackq delims==" %%i in (`echo %profiles%`) do set profiles=%%i
:: Result
echo %profiles%
pause
exit
Boa Soft
26-12-2005, 12:57
Если необходимо одинаково настроить рабочий стол (расположение иконок) на большом количестве компьютеров, то можно воспользоватся приаттаченной утилитой - DeskSaver.exe
После настройки на эталонном компьютере запускаем DeskSaver.exe s
Копируем утилиту и полученный файл настроек DeskSaver.ini на остальныее компьютеры и запускаем DeskSaver.exe r
Значьки будут выстроенны как на эталонной машине.
Внимание! Запускать надо только после инициализации рабочего стола, например из
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
Внимание2! С read-only носителя не работает - оно выгружает из ресурса dll, отрабатывает действие и удаляет ее. Зато оди файл.
PS Возможно и другое применение - при наличии детей или в школе закинуть прогу в атозагрузку и бардак на рабочем столе будет ликвидирован автоматом.
PSS Извиняюсь за ошибку. Вложение было с мусором - сейчас исправил. Там действительно то, что надо!
specialist
29-12-2005, 14:28
Переменные среды (http://oszone.net/3673) (обсуждение (http://forum.oszone.net/thread-61201.html))
Замена Boot Screen-на создаём файл с картинкой 640x480 16-цветный под именем boot.bmp в папке WINDOWS и правим boot.ini в корневом каталоге диска: приводим к следующиму виду.
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect [B]/noguiboot /bootlogo
Очень удобно так как не приходится править ядро (да и не каждый сумеет), плюс не зависит от текущей версии WINDOWS. Как исправить файлик и добавить картинку в автоматическом режиме, думаю объяснять не надо? :-)
Кто подскажет - как сделать такую "хитрость" чтобы после завершения автоустановки просигналил динамик компьютера?
Запуск RunOnceEx с CD
Внесение переменной %i% избавляет от необходимости менять ключи при перестановке или добавлении программ в файл RunOnceEx.cmd
Подробнее: Запуск RunOnceEx с CD (http://oszone.net/2805)
Boa Soft
08-01-2006, 18:32
Кто подскажет - как сделать такую "хитрость" чтобы после завершения автоустановки просигналил динамик компьютера?
Прописать в пакетный файл автоустановки последней строкой вызов приаттаченой утилиты
first install command
second install command
.....
beeper.exe
За звук не пинайте - написано за 5 минут, когда не смог найти в запасах готовой утилиты.
Выдвинуть каретку CD-ROM после установки
Программа CDEject.exe предназначена для открытия-закрытия CD -привода (CD-ROM, CD-R, CD-RW).
Программа может работать с несколькими CD, причем может делать это одновременно за один запуск.
Программа запускается из командной строки.
Oemlogo.bmp и oeminfo.ini автоматом
$OEM$\oemlogo.bmp
$OEM$\oemlogo.cmd
$OEM$\oemlogo.gif
cmdlines.txt
[COMMANDS]
oemlogo.cmd
oemlogo.cmd
cmdow @ /HID
@echo off
SET D=%SYSTEMROOT%\system32\
copy oemlogo.bmp %d%oemlogo.bmp
echo [General] > "%D%oeminfo.ini"
echo Manufacturer=Автор версии : D@nil >> "%D%oeminfo.ini"
echo Model=Корпоративная Версия >> "%D%oeminfo.ini"
echo [Support Information] >> "%D%oeminfo.ini"
echo Line1=Дата установки системы : %date% >> "%D%oeminfo.ini"
echo Line2= >> "%D%oeminfo.ini"
echo Line3=Время установки системы : %time% >> "%D%oeminfo.ini"
echo Line4= >> "%D%oeminfo.ini"
echo Line5=Установленные обновления : >> "%D%oeminfo.ini"
echo Line6= >> "%D%oeminfo.ini"
SET i=7
ATTRIB -H -S -R %SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\KB*.cat
For /F "tokens=1* delims=." %%k in ('dir "%SYSTEMROOT%\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\KB*.cat" /b') do ( (set kbname=%%k) & (call :myprint) )
GOTO :EOF
:myprint
echo Line%i%=%kbname% >> "%D%oeminfo.ini"
SET /A i=%i%+1
:EOF
oemlogo.gif
Для тех, кто проживает не в России, но предпочитает использовать программное обеспечение с русским интерфейсом.
Многие инсталляторы и программы пытаются самостоятельно установить язык интерфейса в соответствии с системными установками Windows. В то же время, для работы в Интернете и некоторых других целей необходимо указывать свое действительное местонахождение.
Попытаться разрешить это противоречие можно, использовав приведенные фрагменты.
В файле WINNT.SIF задаем русский языковый стандарт, свой часовой пояс и необходимые раскладки клавиатуры, а также свои "телефонные координаты":
[GuiUnattended]
TimeZone = 130
OEMSkipRegional = 1
[RegionalSettings]
SystemLocale = 00000419
UserLocale = 00000419
InputLocale = 0409:00020409,0419:00000419,0422:00000422
[TapiLocation]
CountryCode=380
Dialing=Tone
AreaCode=057
В файле HKCU.REG (установки, импортируемые в реестр при первом входе в систему) задаем остальное:
Windows Registry Editor Version 5.00
;---------------------------------------------
;"Правильная" локализация
;---------------------------------------------
;Задать свое "Расположение" (у меня - Украина)
[HKEY_CURRENT_USER\Control Panel\International\Geo]
"Nation"="241"
;Задать национальную валюту и способы ее отображения (у меня - гривня)
[HKEY_CURRENT_USER\Control Panel\International]
"iCurrency"="3"
"iNegCurr"="8"
"sCurrency"="грн."
Получим, как на вложеной картинке
Замена иконки 7z sfx архива. Придание инсталлятору подобающего вида.
Вокруг да около ходили много, но по-моему так никто подробно и не раскрывал суть вопроса: Как вставить в создаваемый вами дистрибутив на основе 7z sfx модуля свою иконку?
Скоро надеюсь грянет обещанная Oleg_Sch гуи-оболочка, в которой можно будет легко и просто выбирать из каких файлов, с помощью какого модуля и его параметров делать инсталляшку, а также присваивать ей свою иконку... А пока, осмелюсь выложить не очень сложный алгоритм альтернативных, но вполне осуществимых действий, приводящих к желаемому результату.
Итак, для начала остановимся на необходимом программном обеспечении. Можно использовать множество программ для тех или иных целей, но я остановлюсь на тех, которыми пользовался сам - редактор ресурсов Resource Hacker и редактор иконок AWicons Pro. Русскую версию первого лучше всего взять на сайте www.samlab.ws а второй поискать с помощью какого-нибудь поисковика.
Итак, приступаем к работе:
- устанавливаем, регистрируем... короче добиваемся работоспособного состояния вышеназванных программ.
- запускаем Resource Hacker. Файл - Открыть - выбираем в нем любой исполняемый файл, иконку из которого требуется вытащить.
- идем в пункт Icon Group и находим в одной из его подпапок требуемый ресурс иконок (их может быть несколько - нужную нам группу выбираем визуально, смотря на отображающиеся в правой части окна программы иконки).
- нажимаем на нем правой кнопкой мыши и выбираем пункт меню Сохранить [Icon Group: ....], далее указываем путь и имя файла иконок.
- поскольку в получившемся файле иконок их очень много а нам хочется чтобы размер дистрибутива практически не увеличился, нам теперь нужно убрать лишние иконки из этого файла. Я воспользовался программой AWicons Pro - открыл файл извлеченных на предыдущем этапе иконок и нажимая последовательно на одной за другой иконках правой кнопкой мыши, выбирал в контекстном меню Удалить, пока не осталось всего две нужных мне иконки - 16Х16 и 32Х32 точки 32-битного цвета и сохранил этот обрезанный ресурс.
- далее снова открываем Resource Hacker. Файл - Открыть (тип файлов - Все файлы) выбираем наш модуль 7z sfx (он должен быть несжатым упаковщиком upx, если сжат - распаковать командой upx -d your_sfx.sfx, а после подмены иконок - запаковать командой upx --best your_sfx.sfx ;естесственно, что в этом случае заранее скачанный вами упаковщик upx должен находиться в одной папке с упаковываемым 7z sfx модулем) и жмем кнопку Открыть.
- снова заходим в пункт Icon Group, находим там подпапку с искомым ресурсом иконок, и нажав на самом ресурсе иконок правой кнопкой мыши из контекстного меню выбираем пункт Заменить ресурс ...
- в открывшемся окне щелкаем по кнопке Открыть значок, выбираем файл иконок, который был до этого предварительно обрезан и щелкаем по кнопке Заменить и далее Закрыть.
- после проделанных действий можно нажать Файл - сохранить как ... и указав нужную папку и имя вашего нового 7z sfx модуля выйти из программы.
- нужно убедиться что программа не забыла дописать расширение файла .sfx а если забыла дописать его ручками
- далее из командной строки или с помощью заботливо созданного командного файла следующего содержания COPY /b your_sfx.sfx + your_config.txt + your_7z.7z your_install.exe
где:
your_sfx.sfx - вами замучанный 7z sfx модуль
your_config.txt - вами созданный файл конфигурации модуля 7z sfx
your_7z.7z - ваш 7z архив с программой
your_install.exe - ваша получающаяся на выходе инсталляшка
вы сможете получить ваш инсталляционный файл с красивой иконкой!
Удачи!
http://forum.oszone.net/showpost.php?p=381137&postcount=18
Актуализация времени CAB-архивов в дистрибутивах Windows
Может кто не знает но первые версии мелкософтовской тулзы compress.exe устанавливали метку времени упакованного файла равной метке исходного файла. В этом есть своя логика - так значительно упрощается сравнение содержимого каталогов средствами файловых менеджеров, (например, для отслеживания работы различных "интеграторов"). Другие инструменты - MakeCab и CabArc устанавливают метку равной времени создания архива. Поэтому пришлось написать короткий скрипт, восстанавливающий метку времени из содержимого архива.
Среди многообразия утилит Microsoft не нашел ни одной, позволяющей устанавливать метку времени или копировать ее между файлами. Однако для этих целей вполне подойдет утилита Touch, портированная из Unix. Через Google можно найти не один вариант такого порта, причем с исходниками. Есть еще один выход - средствами AutoIT написать свой скриптовый аналог Touch. У такого способа есть свои преимущества - унификация формата даты и полный контроль над процессом. В предложенном скрипте использован последний вариант (утилита TimeCopy).
Для получения справки запустите cmd-файл без параметров.
Vadikan
Сайт http://www.nirsoft.net глубоком дауне наверное 8-((. И поисковики все ссылаются на него. А посмотреть было бы интересно, м/б выложишь на oszone или где удобней?
samsobi
Вот только сейчас проверил - http://www.nirsoft.net "летает" :)!
Proektor
01-02-2006, 13:35
Подскажет кто-нибудь как можно из командной строки (или через реестр) переименовать раздел?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.