Показать полную графическую версию : Маленькие хитрости автоустановки
Страниц :
1
[
2]
3
4
5
6
7
8
9
10
11
Proektor: а другой ничего спросить здесь ты не хочешь? Там, про Касперсого часто интересуются, про Как_заработать_деньги... тоже можешь спросить в теме Маленькие хитрости автоустановки >:|
label Диск:
Как сделать инсталляцию сложной (вносит много переменных с ссылками на файлы и пр.) программы которая не поддерживает unattended ключи
1. Устанавливаем Symantec AutoInstall (http://forum.oszone.net/showpost.php?p=358555&postcount=1) запускаем AISnapshot в Options удаляем все диски затем нажемаем ADD выбираем папки "Documents and Settings" и "Windows", нажемаем browse выбираем "Мои документы" нажемаем OK > Далее (Ждем...) > Next вводим название программы (скажем winamp_auto) окно не закрываем и переходим к пункту 2
2. Устанавливаем нужную Вам программу (например winamp) русифицируем, регестрируем, делаем в ней нужные настройки....
3. Выбираем откытое окошко программы AISnapshot и нажемаем Compare (Ждем...) > Build > Готово
4. Берем файл c названием Вашей программы (winamp_auto.exe) из папки Мои документы и копируем в папку с установленной только что Вами программой (C:\Program Files\Winamp), затем в папке с программой (C:\Program Files\Winamp) выделяем все файлы и делаем SFX архив с параметрами: путь распаковки - "%ProgramFiles%\Winamp", после распаковки запустить - "%ProgramFiles%\Winamp\winamp_auto.exe"
Уменьшение размера дистрибутива. Переупаковка файлов.
Почти все файлы в дистрибутивах Windows сжаты в одиночные или пакетные CAB-архивы, но размер дистрибутива можно еще уменьшить если перепаковать эти файлы с параметром максимального сжатия. Прилагаю командный файл, который выполняет такую переупаковку всех упакованных файлов в указанном каталоге (с подкаталогами). Одновременно проводится актуализация метки времени архива (утилита TimeCopy), о которой писал выше (http://forum.oszone.net/showpost.php?p=397746&postcount=20).
Обработка CAB-файлов может проводиться двумя способами - штатным MakeCab, или же CabArc из CAB SDK, оба варианта доступны в скрипте. CabArc (в отличие от MakeCab) поддерживает вложенные каталоги, зато архивы упакованные MakeCAB имеют более короткое время доступа (по данным msfn.org). Поэтому в скрипте предпочтение отдано именно 1-му способу, в случае неудачи (наличие подкаталогов) вызывается 2-й способ.
Для получения краткой справки запустите пакетный файл без параметров.
Внимание! Windows XP/2003 комплектуется версией MakeCab, изменяющей метку времени исходного файла и устанавливающей ее равной времени архива! Совершенно не понимаю чем вызвано такое поведение… если дело пойдет так и дальше, то атрибут метки времени может вовсе утратить свою значимость. В результате работы скрипта с таким MakeCab может случиться ситуация когда метка архива актуальней метки самого файла. Воизбежание проблем для операций с архивами лучше всегда использовать один набор утилит, например из Microsoft CAB SDK (http://support.microsoft.com/default.aspx?scid=KB;en-us;310618).
Предостережение! Командные файлы содержат процедуры по массовой обработке файлов и каталогов, в том числе команды удаления, перемещения и т.д. Нет гарантий, что в разных условиях скрипт будет вести себя одинаково. Поэтому крайне рекомендую все операции с дистрибутивами проводить только на виртуальном диске, перенаправив рабочую папку при помощи штатной команды SUBST, например:subst w: c:\WRK
Уменьшение размера дистрибутива. Упаковка после интеграции хотфиксов.
Нынче практически все выпускаемые Microsoft хотфиксы поддерживают интеграцию в дистрибутив (ключ /integrate). Одно неудобство - все обновленные файлы остаются в неупакованном виде. Предлагаю вариант скрипта который сравнивает обновленный дистрибутив (QFE) с оригиналом (RTM) и упаковывает только те файлы, которые до обновления хранились в сжатом виде. Упаковка совмещена с актуализацией времени (утилита TimeCopy).
Для получения краткой справки запустите пакетный файл без параметров.
Уменьшение размера дистрибутива
После интеграции в дистрибутив Windows XP SP1 Service Pack 2 (а такой "самодельный" дистрибутив весьма распространен),
от предыдущего SP1 остаются файлы SP1.cab и SP1.CAT (ок 10 Мб), которые можно (и нужно) совершенно безболезненно удалить.
Никаких дополнительных махинаций не требуется.
Softwarez777
16-02-2006, 14:31
можно смело применять 1-й способ, подправив соответствующую строчку в скрипте (выделена пунктиром).
Можно поподробнее, как подправить для первого способа ? а то ругается всё время ...
Можно поподробнее, как подправить для первого способа ?Заменить в вызове процедуры "CALL :RECAB.2" на "CALL :RECAB.1" (в последней редакции)а то ругается всё время ...На что ругается? Вывести лог в файл и выслать мылом, пример:winrecab WXPSP2 >winrecab.log 2>&1
Boa Soft
17-02-2006, 02:23
Vadikan
Утилита hidcon
В командной строке указывается имя исполняемого файла и его командная строка. Например,
А из Cmdlines это применимо?
Я пробовал положить hidcon в $OEM$ и вызавать примерно так
"hidcon oemlogo.cmd"
При этом oemlogo.cmd тоже лежал в $OEM$ и в таком виде
"oemlogo.cmd"
Вызывался нормально.
Oleg_Sch
17-02-2006, 03:43
Boa Soft
Из папки $OEM$ запускать не пробовал. Я его копирую в папку windows (т.е. он у меня лежит в $OEM\$$) - этот вариант работает, про другие не скажу, но мне кажется должно работать.
Вот мой реальный cmdlines.txt
[Commands]
"regedit /s custom.reg"
"hidcon defuser.cmd"
"T12.exe"
Хранение дистрибутивов: экономим место на жестком диске.
При создании установочных образов на жестком диске может скапливаться множество дистрибутивов различных ОС разных редакций в разном состоянии, которые занимают приличный объем. Не секрет, что место при этом расходуется весьма неэффективно, так как значительная часть файлов при этом дублируется. Есть как минимум два способа решения проблемы:
1. Задействовать службу SIS (Single Instance Storage), которая входит в комплект RIS (Remote Install Services). При этом минимальной обслуживаемой единицей будет том, назначаемый при установке RIS. Главное достоинство этого варианта - автоматическое (фоновое) отслеживание дублей на томе. Недостатки - доступна только в серверных редакциях Windows, замедляет работу с выделенным для этих целей томом.
2. Использовать жесткие ссылки файловой системы NTFS, при этом минимальной единицей может быть файл. Недостаток - создание ссылок придется кодить самостоятельно или приноравливаться к доступным утилитам, например LN (GNU, порт из UNIX). Но мне приглянулась другая утилита - XLN (http://www.alter.org.ua/soft/win/nt_xln/index.php?lang=ru&), на основе которой и написал простой командный файл, сканирующий выделенный каталог на предмет наличия в нем одинаковых файлов и заменяющий дубликаты жесткими ссылками.
Естественно, что одинаковые файлы должны быть и сжаты одинаково. Поэтому ИМХО есть смысл пережать дистрибутивы заново.
P.S. Не хочу создавать отдельный "секрет", просто обратите внимание что XLN способна также создавать и обычные ярлыки.
Softwarez777
17-02-2006, 23:44
По уменьшению размера дистрибутива ...
С ошибками разобрался, но скрипт всё равно нерабочий - набольших кабах просто закрывается без каких-либо следов ... ;(
Boa Soft
18-02-2006, 01:48
Из папки $OEM$ запускать не пробовал. Я его копирую в папку windows (т.е. он у меня лежит в $OEM\$$) - этот вариант работает, про другие не скажу, но мне кажется должно работать.
Спасибо. Я просто подозревал, что из $OEM$ путь не находит, а так нормально будет.
С ошибками разобрался, но скрипт всё равно нерабочий - набольших кабах просто закрывается без каких-либо следов ... ;(
У меня пока пашет без ошибок. Какой текст ошибки, какая ось и какой CAB? Извиняюсь за навязчивость, но ошибки нужно исправлять... для этого собственно и выложил.
ну чтож и я поделюсь полезняшкой
создаем файл PasteClipBoard.bat c содержимым :
@echo off
if {%1}=={} @echo Syntax: PasteClipBoard content&goto :EOF
if exist "%TEMP%\PasteClipBoard.vbs" goto doit
@echo Dim objArgs>"%TEMP%\PasteClipBoard.vbs"
@echo Set objArgs = Wscript.Arguments>>"%TEMP%\PasteClipBoard.vbs"
@echo Content = objArgs(0)>>"%TEMP%\PasteClipBoard.vbs"
@echo Set objIE = CreateObject("InternetExplorer.Application")>>"%TEMP%\PasteClipBoard.vbs"
@echo objIE.Navigate("about:blank")>>"%TEMP%\PasteClipBoard.vbs"
@echo objIE.document.parentwindow.clipboardData.SetData "text", Content>>"%TEMP%\PasteClipBoard.vbs"
@echo objIE.Quit>>"%TEMP%\PasteClipBoard.vbs"
:doit
cscript //nologo "%TEMP%\PasteClipBoard.vbs" %1
запускаем PasteClipBoard.bat "Этот текст попадёт в буфер обмена"
вот собственно иногда просто не заменимая вещь для автоустановок , когда необходимо учитывать раскладку клавы по умолч., капслук, и возможное наличие пунтосвитчера - а этим приёмом эти устовия безразлисны
Подправил алгоритм winrecab.cmd... Теперь скрипт сам выбирает метод упаковки. :)
DmitryOlenin
26-02-2006, 12:51
ANDYru
В Windows 2000 Sp4 выдается следующее сообщение:
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\PasteClipBoard.vbs(7, 1) (null): Unspecified error
Текст в буфер копируется, но только открывается окошко IE - about:blank.
От этого можно избавиться?
Попробовал на WinXp SP2.
Ошибка CScript: На данном компьютере отключен доступ к серверу сценариев Windows. Обратитесь к системному администратору.
При установке боюсь не вывалилось бы ошибок... Где копать?
amel27
В Nlite есть функция "сжатие CAB". Аналогична ли она вашему скрипту?
DmitryOlenin
В Nlite есть функция "сжатие CAB". Аналогична ли она вашему скрипту?Понятия не имею - nLite давно не пользовал, вот и сравните... http://www.forum.oszone.ru/images/smilies/smile.gif
DmitryOlenin
странно - на xpsp2 катит без проблемм
может не верно батник сделал - завтра положу где нибуть
amel27В вашем комнаднике используется команда findstr.exe Где ея можно взять?
Заглянув в каталог I386\svcpack\ был неприятно удивленн его составом! В нем лежат пркатически те же апдейты только переименованы! Они вообще нужны или нет. Если да, то в чем тогда заключается интеграция! То есть нахрен оня тогда нужна!!!
nsergeip
14-03-2006, 11:59
Если необходимо одинаково настроить рабочий стол (расположение иконок) на большом количестве компьютеров, то можно воспользоватся приаттаченной утилитой - DeskSaver.exe
После настройки на эталонном компьютере запускаем DeskSaver.exe s
Копируем утилиту и полученный файл настроек DeskSaver.ini на остальныее компьютеры и запускаем DeskSaver.exe r
Интересно каким образом это произойдет если формат ini файла таков
[Мои документы]
X=22
Y=2
[Мой компьютер]
X=22
Y=77
[Сетевое окружение]
X=22
Y=152
[Корзина]
X=1086
Y=752
[Internet Explorer]
X=22
Y=227
[ACDSee Pro]
X=174
Y=302
.........
ни путей ничего, откуда система возьмет все остальные данные, помоему это маразм!!!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.