|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Тихое развертывание ПО - из консоли - с файлового сервера |
|
CMD/BAT - Тихое развертывание ПО - из консоли - с файлового сервера
|
Новый участник Сообщения: 1 |
Периодически возникает необходимость развернуть набор ПО на одном или ряде ПК, это можно сделать различными способами, в разных ситуациях администраторы используют тот или иной, удобный им в данном конкретном случае.
Хочу поделиться одним из способов, который я периодически применяю (есть много других способов, это один из них. он не заменяет SCCM, etc, он дает альтернативу). Резюме: Это самописный скрипт, который после запуска выполняет поочередно скрипты (тихой установки) в определенной директории и выводит информацию в графическом виде, вот так: ![]() После установки последнего приложения, включается таймаут на 120 секунд и консоль закрывается. Есть идеи по оптимизации кода и улучшениях алгоритма работы, например добавление уведомлений и ведении логов, но пока немного не до этого, я думаю что решение конкретной задачи, должно быть быстрым и эффективным, а сюси пуси можно оставить на потом. Но, ближе к сути. Весь набор, состоит из: \install_all.bat - тело основного скрипта, запуск которого инициирует установку всего ПО и выводит процесс в консоль. \uac_off.bat - скрипт, отключающий UAC. Пока не используется, создан на перспективу обновления install_all.bat \uac.off.reg - ключ реестра, отключающий UAC. Инъекцию ключа выполняет uac_off.bat \distr.cmd - каталог со скриптами установки. \distr.cmd\*[1.bat-14.bat в текущем примере] - скрипты установки. ------ code: ------ install_all.bat: @echo off REM GLOBAL set top=╔════════════════════════════════╦════════╦═╗ set stat_uns=║ ║ ║ set stat_50p=║▒▒▒▒ ║ ║ set stat_sec=║▓▓▓▓▓▓▓▓║√║ set mid=╠════════════════════════════════╬════════╬═╣ set end=╚════════════════════════════════╩════════╩═╝ set appname=║► " set num=0 set app_1=║► Link and stuff set app_2=║► MS Office 2010 set app_3=║► Adobe Acrobat Reader 10 set app_4=║► ABBY FineReader 10 set app_5=║► Adobe Flash 10 set app_6=║► Java 7 JRE set app_7=║► FREE Commander set app_8=║► VideoLAN set app_9=║► WinRAR 4.01 set app_10=║► KAV WKS 6.04 set app_11=║► KAV Agent 8.04 set app_12=║► DotNet Framework 1.0-4.0 set app_13=║► 1C Enterprise v8.1 set app_14=║► Consultant Plus set append=║► " set endnum=14 REM DROP for /L %%i IN (1,1,%endnum%) DO ( set app_%%i_stat=%stat_uns% ) REM WORK for /L %%i IN (1,1,%endnum%) DO ( set app_%%i_stat=%stat_50p% call :render call "\\sr-datastore-323\_distr\!install_dir\distr.cmd\%%i.bat" set app_%%i_stat=%stat_sec% ) TIMEOUT /T 120 @echo on exit :render cls echo. echo %top% echo %app_1%%app_1_stat%&echo %mid% echo %app_2%%app_2_stat%&echo %mid% echo %app_3%%app_3_stat%&echo %mid% echo %app_4%%app_4_stat%&echo %mid% echo %app_5%%app_5_stat%&echo %mid% echo %app_6%%app_6_stat%&echo %mid% echo %app_7%%app_7_stat%&echo %mid% echo %app_8%%app_8_stat%&echo %mid% echo %app_9%%app_9_stat%&echo %mid% echo %app_10%%app_10_stat%&echo %mid% echo %app_11%%app_11_stat%&echo %mid% echo %app_12%%app_12_stat%&echo %mid% echo %app_13%%app_13_stat%&echo %mid% echo %app_14%%app_14_stat% echo %end% Имена пакетов установки, пока вбиты жестко, в дальнейшем можно сделать перехват имен как параметров. appname и append нужны тут только для видимости ширины поля и не используются. блок :render рисует таблицу, по имеющимся параметрам. REM DROP - сброс статуса всех пакетов в значение stat_uns REM WORK - делает call \\path\%%i.bat с 1, до endnum, с шагом 1. ставим выполняемому пакету статус 50%, рисуем таблицу, вызываем скрипт, ставим статус 100%, и так далее, пока %%i меньше либо равно endnum Можно будет провести оптимизацию и делать обход подкаталога захватывая имена пакетов как переменные и не указывая endnum. install_all.bat отделен от скриптов установки, для удобства чтения кода и работы с ним. В примере выше, путь \\sr-datastore-323\_distr\ это шаренный каталог на сервере sr-datastore-323. т.е. все файлы, как установки, так и скрипты хранятся на файловом сервере. \\sr-datastore-323\_distr\!install_dir\ корневой каталог установщика \\sr-datastore-323\_distr\!install_dir\distr.cmd\ каталог со скриптами тихой установки от 1.bat о 14.bat в текущем примере, номер соответствует "set app_%=" В вашем случае, пути будут другие. Во всех примерах ниже, будет указан сетевой путь до файлов лежащих на этом файловом сервере. ----------------- \uac_off.bat - скрипт выполняющий инъекцию в реестр @echo off cls echo ╔═══════════╗ echo ║ UAC off ║ echo ╚═══════════╝ regedit /s \\sr-datastore-323\_distr\_corp\_lnk\uac.off.reg echo DONE! echo Will restart at: TIMEOUT /T 5 shutdown /r @echo on Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] "EnableLUA"=dword:00000000 Каталог distr.cmd: Всё ПО ставится в тихом режиме, никаких действий выполнять не требуется, установка проходит все пункты поочередно и отображает процесс в консоли. ► Link and stuff - выполняем всякие полезные штуки, создаем ярлыки и т.д., кому что надо: if exist "C:\Users\Public\Desktop\desktop.ini" ( echo sys.Win7 copy "\\sr-datastore-323\_adm\_distr\_corp\_lnk\Корп. почта - Web.url" "C:\Users\Public\Desktop\Корп. почта - Web.url" copy "\\sr-datastore-323\_adm\_distr\_corp\_lnk\КСД - Комплексная Система Документооборота.url" "C:\Users\Public\Desktop\КСД - Комплексная Система Документооборота.url" ) else ( echo sys.WinXP copy "\\sr-datastore-323\_adm\_distr\_corp\_lnk\Корп. почта - Web.url" "C:\Documents and Settings\All Users\Рабочий стол\Корп. почта - Web.url" copy "\\sr-datastore-323\_adm\_distr\_corp\_lnk\КСД - Комплексная Система Документооборота.url" "C:\Documents and Settings\All Users\Рабочий стол\КСД - Комплексная Система Документооборота.url" ) ► Adobe Acrobat Reader 10: "\\sr-datastore-323\_adm\_distr\_corp\AdobeAcrobat Reader\AdbeRdr1000_ru_RU.exe" /msi EULA_ACCEPT=YES /qn ► Adobe Flash 10 - установка обеих версий Flash: "\\sr-datastore-323\_adm\_distr\_corp\Adobe Flash\install_flash_player.exe" -install "\\sr-datastore-323\_adm\_distr\_corp\Adobe Flash\install_flash_player_ax.exe" -install ► FREE Commander: "\\sr-datastore-323\_adm\_distr\_corp\Free Commander\fc_setup.exe" /SP- /VERYSILENT /LANG=Russian /NORESTART if exist "%ProgramFiles%\VideoLAN\VLC\uninstall.exe" ( "%ProgramFiles%\VideoLAN\VLC\uninstall.exe" /S TIMEOUT /T 10 ) "\\sr-datastore-323\_adm\_distr\_corp\vlc\vlc-1.1.9-win32.exe" /L=1049 /S "\\sr-datastore-323\_adm\_distr\_corp\WinRAR_4.01_corp\wrar401ru.exe" /s if exist "%programfiles%\WinRar" ( xcopy "\\sr-datastore-323\_adm\_distr\_corp\WinRAR_4.01_corp\rarreg.key" "%programfiles%\WinRar" /Y ) else ( xcopy "\\sr-datastore-323\_adm\_distr\_corp\WinRAR_4.01_corp\rarreg.key" "%programfiles(x86)%\WinRar" /Y ) ► KAV Agent 8.04: ► DotNet Framework 1.0-4.0 - установка вот этой прекрасной сборки .net: ► 1C Enterprise v8.1 - установка 1С, замена nethasp.ini и копирование ярлыков на уже сформированные базы: "\\sr-datastore-323\1C81Admin\setup.exe" /s /v/qn del "%programfiles%\1cv81\bin\conf\nethasp.ini" copy "\\sr-datastore-323\_adm\_distr\_corp\_nethasp\nethasp.ini" "%programfiles%\1cv81\bin\conf\nethasp.ini" if exist "C:\Users\Public\Desktop\desktop.ini" ( echo sys.Win7 copy "\\sr-datastore-323\_adm\_distr\_corp\_nethasp\1С Основная база - v8.1.lnk" "C:\Users\Public\Desktop\1С Основная база - v8.1.lnk" copy "\\sr-datastore-323\_adm\_distr\_corp\_nethasp\1С Тестовая база - v8.1.lnk" "C:\Users\Public\Desktop\1С Тестовая база - v8.1.lnk" ) else ( echo sys.WinXP copy "\\sr-datastore-323\_adm\_distr\_corp\_nethasp\1С Основная база - v8.1.lnk" "C:\Documents and Settings\All Users\Рабочий стол\1С Основная база - v8.1.lnk" copy "\\sr-datastore-323\_adm\_distr\_corp\_nethasp\1С Тестовая база - v8.1.lnk" "C:\Documents and Settings\All Users\Рабочий стол\1С Тестовая база - v8.1.lnk" ) "C:\Program Files (x86)\1cv81\bin\1cv8.exe" enterprise /Ssr-1c-125\base ► Consultant Plus - запуск стандартного "установщика" консультанта, вопрос с тихой установкой пока толком не решен, поэтому этот пункт последний в списке, есть идеи по реализации тихой установки окольными путями: --------------------- Есть что изменить в install_all.bat, есть куда улучшать, вижу вектора движения, пока нет особого желания и необходимости. Приму любые идеи, критику и предложения. |
|
Отправлено: 11:47, 12-12-2011 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Сразу говорю не селен в написании скриптов )) По этой причине и спрашиваю.
Вопрос возник по данному батнику. Сделал следующие файлы. В данный файл писать пути к скриптам типа 1.bat, 2.bat, 3bat, и т.д? Или сами пути с ключами тихой установки? Файл 1.bat должен содержать путь к установочному файлу типа - "\\server\Soft\wrar401.exe" /S /IR ?? На данный момент у меня в файле distr.cmd - прописаны пути до bat файлов. До этого в distr.cmd были прописаны пути ключами тихой установки. Все конено работает но криво и без построения графика. Если прописать call "\\server\soft\hiden_install\distr.cmd\" - работает , но криво. Если оставить call "\\server\soft\hiden_install\distr.cmd\%%i.bat" - отдает "неверно задано имя папки" запускается отсчет в 120 сек. Как быть то ? |
Отправлено: 17:00, 15-11-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать tutitam, по поводу пакетного файла лучше пишите непосредственно автору.
|
Отправлено: 17:26, 15-11-2012 | #3 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Отправил, но судя по активности автора на форуме, что то мне подсказывает, что ответа возможно придется ждать долго
![]() |
Отправлено: 17:59, 15-11-2012 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать tutitam, написали именно на почту?
|
|
Отправлено: 23:20, 15-11-2012 | #5 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Iska, И на поту в том числе.
|
Отправлено: 12:02, 16-11-2012 | #6 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать C выше описанной проблемой разобрался, все дело в том, что не внимательно читал пост автора.
Но все же остается вопрос - почему то не отрисовывается график, выдает кракозябру. |
Отправлено: 18:23, 16-11-2012 | #7 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать Проблема решена.
Для того чтобы корректно отрисовывалась таблица, скрипт нужно сохранять в кодировке ОЕМ 866. Спасибо Zorge.R., помог разобраться. |
Отправлено: 15:08, 20-11-2012 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Диспечер ресурсов файлового сервера. | Denzl | Microsoft Windows NT/2000/2003 | 3 | 10-12-2010 20:06 | |
Зависание файлового сервера... | exo | Microsoft Windows NT/2000/2003 | 5 | 25-09-2009 20:57 | |
Падение файлового сервера, DNS-сервера раз в 24 часа. | Yazago | Microsoft Windows NT/2000/2003 | 42 | 01-09-2009 11:52 | |
Организация файлового сервера | max_k | Microsoft Windows NT/2000/2003 | 4 | 22-02-2007 11:49 | |
[решено] Перенос файлового сервера | bobrush | Microsoft Windows NT/2000/2003 | 19 | 23-06-2006 09:44 |
|