Доброе время суток ну поехали.
Для начала ссылка на все фалы о которых тут говорится: http://files.mail.ru/KR1XJS
Готовый установщик+ все файлы которые в него включнены.
Дано: программа Документы ПУ5 тип -установщика EXEшник
Задача поставить большому числу пользователей. + бонус .есть домен.
Итак разобьем задачу:
1.Создание автоустановщика.
2.выбор средства распространения автоустановщика
1.В качестве автоустановщика был выбран скрипт autoit ( почему я не msi отдельная песня)
2.В качестве средства распространения утилита psexec.exe( спасибо господину Русиновичу)
1. Создаем автоустановщик на пример ДОКУМЕНТЫ ПУ5
2. итого у нас есть два файла дистрибутив ПУ5 и скомпилированный установщик.
3. Теперь создаем SFX архив( подробности тут http://www.oszone.net/display.php?id=3171) в опциях упаковки ставим «распаковывать во временною папку» , после распаковки запустить скомпилированный установщик
Комментарии к скрипту
Почему ALL Users? Потому что ставим от имени админа и ярлык окажется у него на десктопе.
Да. моим юзерам не дано вынести ярлык из пуск > все программы )))
Винды есть как RUS так и ENG реализовал проверку таким грубым методом. Сроки горели)) Если кто знает по красивее - поправите.
Теперь о методе распространения
Для этой цели использую PSEXEC.EXE
Принцип работы утилита копирует наш SFX установщик на удаленный компьютер и запускает его там с правами админа))
Расшифруем( ссылка н а подробно описание синтаксиса в конце)
Скопировать наш SFX установщик на все ПК указанные в list.txt и выполнить его.
ВАЖНО!!!
ЧТО БЫ AUTOIT – установщик сработал при запуске по psexec
ОН ДОЛЖЕН
1. Быть запущен в графическом режиме ( ключ –i ) мы же эмулируем нажатие клавиш в окне так? =)))
2. Он должен быть скопирован в локальную систему перед запуском( ключ -c )
Те так НЕЛЬЗЯ
Будете посланы
Почему так в поясню ниже.
По основным пунктам все.
Превратности запуска через PSEXEC
PSEXEC не умеет запускать на удаленном хосте файлы лежащие на шаре.!
Exeшник Должен быть на хосте локально!
У нас к тому же два файла EXE( дистрибутив и скомпилированный скрпит). Т.е. надо одной командой psexec скопировать на хост два файла а один из них запустить… найдете такую напишите.
Впрочем если и найдете, это вам не поможет(ехидный смайл)
Рассмотрим ситуацию:
дистрибутив и скомпилированный скрпит лежат на хосте в папке C:\install {( ну положим скопированные туда по GPO этакой репозитарий =)))) }
Мы пытаемся запустить:
Вроде бы все правильно? Но запуск не произойдет! Почему ХЗ. Так и не понял.
Увы не считая упаковки в SFC , мной был найден только такой путь:
ЧТО БЫ ЗАПУСТИЛСЯ СКРПТ ЧЕРЕЗ psexec
НУЖНО ЧТО БЫ ОН БЫЛ ВЫЗВАН ИЗ САМОГО ХОСТА.
На рисунке видно что psexec вызывает CMDшник на хосте( С ПРАВАМИ АДМИНА!!!)
Который в свою очередь вызывает установщик и тп.
Это кстати моя первая версия автоустановщика))) о SFX я узнал через два дня.
Вот так это с SFX
1.Psexec копирует SFX на клиента запускает его и докладывает ID процесса мне.
SFX распаковывает в TEMPовую директорию дистрибутив и скомпилированный скрпит и запускает скомпилированный скрпит( это все уже на хосте)
Вот и все. пора за пивом :beer:
Если тема встрет интерес расскажу еще о программах CheckXML и Баланс 2W. в аналогичном ключе.
Все счастливо.)
ССЫЛКИ ПО ТЕМЕ
PSEXEC
http://technet.microsoft.com/ru-ru/sysinternals/bb897553
Создание SFX архива
http://www.oszone.net/display.php?id=3171
Для начала ссылка на все фалы о которых тут говорится: http://files.mail.ru/KR1XJS
Готовый установщик+ все файлы которые в него включнены.
Дано: программа Документы ПУ5 тип -установщика EXEшник
Задача поставить большому числу пользователей. + бонус .есть домен.
Итак разобьем задачу:
1.Создание автоустановщика.
2.выбор средства распространения автоустановщика
1.В качестве автоустановщика был выбран скрипт autoit ( почему я не msi отдельная песня)
2.В качестве средства распространения утилита psexec.exe( спасибо господину Русиновичу)
1. Создаем автоустановщик на пример ДОКУМЕНТЫ ПУ5
Код:
run("setup_ipfrx5_6_20_75.exe")
WinWaitActive("Установка 'Документы ПУ 5'")
Send("{ENTER}")
WinWaitActive("Установка 'Документы ПУ 5'" ,"Лицензионное соглашение" )
send("{TAB 4}{ENTER 3}")
WinWaitActive("Установка 'Документы ПУ 5'","Опции")
Send("{RIGHT}{SPACE}{ENTER}")
WinWaitActive("Установка 'Документы ПУ 5'" , "Программа 'Документы ПУ 5' была успешно установлена!")
Send("{enter}")
FileCopy(@ScriptDir & "\ikladr_5.tps", "C:\Program Files\Документы ПУ 5\DataBase\",1)
FileCreateShortcut(@ProgramFilesDir & "\Документы ПУ 5\ipfrx5.exe",@ProgramFilesDir & "\Документы ПУ 5\Документы_ПУ_5.lnk", @ProgramFilesDir & "\Документы ПУ 5", "","" )
$var = "C:\Documents and Settings\All Users"
if FileExists($var & "\"& "Рабочий стол") Then
FileCopy(@ProgramFilesDir & "\Документы ПУ 5\Документы_ПУ_5.lnk", $var & "\"& "Рабочий стол" & "\Документы_ПУ_5.lnk")
else
FileCopy(@ProgramFilesDir & "\Документы ПУ 5\Документы_ПУ_5.lnk", $var & "\"& "Desktop" & "\Документы_ПУ_5.lnk")
EndIf
shutdown(2)
2. итого у нас есть два файла дистрибутив ПУ5 и скомпилированный установщик.
3. Теперь создаем SFX архив( подробности тут http://www.oszone.net/display.php?id=3171) в опциях упаковки ставим «распаковывать во временною папку» , после распаковки запустить скомпилированный установщик
Комментарии к скрипту
Код:
$var = "C:\Documents and Settings\All Users"
Почему ALL Users? Потому что ставим от имени админа и ярлык окажется у него на десктопе.
Да. моим юзерам не дано вынести ярлык из пуск > все программы )))
Код:
if FileExists($var & "\"& "Рабочий стол") Then
FileCopy(@ProgramFilesDir & "\Документы ПУ 5\Документы_ПУ_5.lnk", $var & "\"& "Рабочий стол" & "\Документы_ПУ_5.lnk")
else
FileCopy(@ProgramFilesDir & "\Документы ПУ 5\Документы_ПУ_5.lnk", $var & "\"& " Desktop " & "\Документы_ПУ_5.lnk")
EndIf
Винды есть как RUS так и ENG реализовал проверку таким грубым методом. Сроки горели)) Если кто знает по красивее - поправите.
Теперь о методе распространения
Для этой цели использую PSEXEC.EXE
Принцип работы утилита копирует наш SFX установщик на удаленный компьютер и запускает его там с правами админа))
Код:
psexec -i -c -d -f C:\install\install_pu5.exe @D:\PSEXEC_INSTAll\list.txt
Скопировать наш SFX установщик на все ПК указанные в list.txt и выполнить его.
ВАЖНО!!!
ЧТО БЫ AUTOIT – установщик сработал при запуске по psexec
ОН ДОЛЖЕН
1. Быть запущен в графическом режиме ( ключ –i ) мы же эмулируем нажатие клавиш в окне так? =)))
2. Он должен быть скопирован в локальную систему перед запуском( ключ -c )
Те так НЕЛЬЗЯ
Код:
psexec -i -d @D:\PSEXEC_INSTAll\list.txt \\server\.скомпилированный установщик .exe
Почему так в поясню ниже.
По основным пунктам все.
Превратности запуска через PSEXEC
PSEXEC не умеет запускать на удаленном хосте файлы лежащие на шаре.!
Exeшник Должен быть на хосте локально!
У нас к тому же два файла EXE( дистрибутив и скомпилированный скрпит). Т.е. надо одной командой psexec скопировать на хост два файла а один из них запустить… найдете такую напишите.
Впрочем если и найдете, это вам не поможет(ехидный смайл)
Рассмотрим ситуацию:
дистрибутив и скомпилированный скрпит лежат на хосте в папке C:\install {( ну положим скопированные туда по GPO этакой репозитарий =)))) }
Мы пытаемся запустить:
Код:
psexec \\ХОСТ -i -d C:\INSTALL\ скомпилированный скрпит.exe
Вроде бы все правильно? Но запуск не произойдет! Почему ХЗ. Так и не понял.
Увы не считая упаковки в SFC , мной был найден только такой путь:
ЧТО БЫ ЗАПУСТИЛСЯ СКРПТ ЧЕРЕЗ psexec
НУЖНО ЧТО БЫ ОН БЫЛ ВЫЗВАН ИЗ САМОГО ХОСТА.
На рисунке видно что psexec вызывает CMDшник на хосте( С ПРАВАМИ АДМИНА!!!)
Который в свою очередь вызывает установщик и тп.
Это кстати моя первая версия автоустановщика))) о SFX я узнал через два дня.
Вот так это с SFX
1.Psexec копирует SFX на клиента запускает его и докладывает ID процесса мне.
SFX распаковывает в TEMPовую директорию дистрибутив и скомпилированный скрпит и запускает скомпилированный скрпит( это все уже на хосте)
Вот и все. пора за пивом :beer:
Если тема встрет интерес расскажу еще о программах CheckXML и Баланс 2W. в аналогичном ключе.
Все счастливо.)
ССЫЛКИ ПО ТЕМЕ
PSEXEC
http://technet.microsoft.com/ru-ru/sysinternals/bb897553
Создание SFX архива
http://www.oszone.net/display.php?id=3171