Bat файл для установки программ

Обновлено: 07.07.2024

Работая системным администратором, часто сталкиваешься с необходимостью удаленной установки каких-либо программ. Что-то массовое может быть установлено через групповые политики, что-то единичное приходится устанавливать с помощью непосредственного управления целевым компьютером.

Однако, с тех пор, как в нашей ультраконсервативной конторе стали появлятся компьютеры с более новой, чем XP, версией Windows, возникла проблема: удаленный помощник Windows Server 2003 (который итак никого, в общем-то, не устраивал) не мог подключиться к более поздним версиям ОС. Конечно, у нас оставался старый добрый «Удаленный рабочий стол», но иногда ведь нужно увидеть именно то, что видит на своем рабочем столе пользователь. При этом политика безопасности конторы требовала использовать минимум стороннего софта.

После долгих поисков, было установлено, что подключиться к сеансу Windows 7 из сеанса Windows Server 2003 без какой-либо сторонней утилиты не получится. Конкурс на самую бесплатную утилиту удаленного управления выиграла UltraVNC. Именно на ее примере ниже будет рассмотрен способ удаленной тихой установки программ без использования сторонних утилит.

Постановка задачи

Для все той же минимизации присутствия левого софта на компьютерах предприятия, решено было не толкать установку UltraVNC через политики. При этом не было никакого желания на каждый компьютер, где требуется подключиться в сеанс пользователя, подключаться через «удаленный рабочий стол» для установки UltraVNC.

Так и возникла задача — организовать удаленную установку программы X на компьютер Y по требованию. В результате работы сначала явился на свет файл install.bat, способный совершить тихую установку-настройку требуемой программы, а затем был придуман и способ запустить такую установку на удаленном компьютере совершенно без использования сторонних утилит (remote-install.bat).

Тихая установка UltraVNC


Скрипт позволяет быстро и без лишнего шума установить UltraVNC при запуске с администраторскими правами на целевой машине.

Удаленный запуск тихой установки


Скрипт позволяет удаленно запустить install.bat с администраторскими (пользователь SYSTEM) правами.

Немаловажное

  • соответственно названные дистрибутивы для 32 и 64-битных систем — UltraVNC1191(x86).exe и UltraVNC1191(x64).exe
  • заранее заготовленный файл с настройками будущего UltraVNC сервера — ultravnc.ini (можно взять из уже установленной и настроенной копии программы на любом компьютере)
  • файл с опциями установки — uvncinstall.inf. У меня он такой:

Данные bat-скрипты позволили беспрепятственно устанавливать UltraVNC не только на компьютеры с Windows 7, но и на проблемные (с точки зрения «удаленного помощника») компьютеры с Windows XP, а впоследствии и на компьютеры с Windows 8. При желании и наличии напильника, с помощью этих скриптов также можно установить и другие программы — лишь бы была «тихая» установка.

Ключевой особенностью этого способа установки стало именно использование schtasks для создания, запуска и удаления заданий после их завершения. Остальное содержимое скриптов — проверки, перестраховки и всяческие ленивости для минимизации ручного и умственного труда при необходимости установки UltraVNC на очередной компьютер.

На своем предприятии сначала был развернут SCCM , который работает через пень-колоду. Для подстраховки начал делать на основе бат-файлов тихую установку для всего используемого на предприятии софта. Результат очень понравился и мне (сисадмину) и техподдержке, которой приходилось раньше каждую программу ставить и настраивать интерактивно.

Теперь требуется только подключить сетевой диск с софтом и выбрать профиль устанавливаемого софта – это каталог, в котором находятся 2 файла: install.bat - для установки всех пакетов, и install.lst - список путей к пакетам тихой установки.

Файл установки install.bat во всех пакетах написан примерно по одному шаблону. Сначала пакет деинсталлируется, и, если не был указан ключ -u , продолжается его установка.

Везде, где только возможно, для установки используются оригинальные файлы инсталляторов. В результате чего обновить пакет до последней версии очень легко - достаточно заменить старый инсталлятор новым, скачанным по ссылке, указанной в коментарии, и соответствующе изменить переменную INSTALLER .

Вместе с установкой пакетов применяются (по возможности) адекватные (на мой взгляд) настройки. Например: устанавливается язык по умолчанию, стартовая страница, включается/выключается автозагрузка, создаются нужные/удаляются ненужные ярлыки, останавливаются/удаляются ненужные службы, и т.д.

При создании пакетов очень помогли вот эти ресурсы:

А вот сами пакеты тихой установки (каждый нужно распаковать):

7-Zip best sfx архиватор

AnyDesk best sfx удалённый доступ к ПК

Awesome Duplicate Photo Finder sfx поиск одинаковых фотографий

Bitrix24 sfx организация работы компании

ACDSee Classic sfx просмотр изображений

AkelPad best sfx замена Блокнота

AlReader2 best sfx просмотр FB2, ePub

Artweaver sfx редактирование изображений

Bulk Rename Utility best sfx переименование файлов

CDBurnerXP sfx запись оптических дисков

Chistilka sfx очистка от вредоносных и ненужных программ ( сайт разработчика )

Classic Shell best sfx классическая кнопка Пуск для новых версий Windows

ClipboardToClipboard sfx менеджер буфера обмена

Cloud System Booster best sfx устранение ошибок, очистка и оптимизация ПК

Compare It best sfx сравнение 2-х текстовых файлов

DirectX программная платформ DirectX 9.0c (v9.29.1962)

DNS AirTab M973W всё для прошивки и рутования планшета DNS AirTab M973W

DOSBox best sfx эмулятор DOS

Dropbox клиент облачного хранилища

Evernote best sfx ведение заметок

Far Manager best sfx файловый менеджер ( описание )

FastStone Capture best sfx захват снимков экрана, запись видео и аудио

FastStone Image Viewer best sfx просмотр изображений

Free Pascal компилятор языка Паскаль

Freemake Video Converter sfx конвертер мультимедиа-файлов

FilesFind программы для поиска файлов: AVSearch, Everything, SearchMyFiles

Firefox sfx web-браузер

Firefox Community Edition sfx web-браузер (управляется через Group Policy)

Flash Player sfx воспроизведение мультимедиа-контента

Fonts sfx шрифты

GIMP sfx редактирование изображений

GRUB best загрузчик GRUB4DOS с образами для установки на компьютер/флешку

HAL best sfx поиск торрентов

HashTab подсчёт контрольных сумм (расширение для Проводника)

HylaFAX приём и отправка факсов

InfraRecorder sfx запись оптических дисков

Inkscape редактирование векторных изображений

ISScriptEngine поддержка инсталляторов Macromedia InstallShield

iTools best sfx iTools + iBackupBot + iTunes

Java sfx программная платформа Java (v1.7.0_05)

Joxi best sfx снимки экрана

Kaspersky Free Antivirus best sfx антивирус Касперского

KAV Agent агент антивируса Касперского

KeePass sfx менеджер паролей

LAPS управление локальными паролями администраторов на доменных машинах

Тихая установка - это такой процес, при котором вы тихо-мирно сидите и смотрите на экран, где без вашего участия происходит процесс установки ПО, при условии, что его вообще видно. При этом установщик не беспокоит вас вопросами типа Вы согласны с лицензионным соглашением? . Параметры для установки используются по-умолчанию. т.е. те, которые предлагает установщик при установке ПО обычным способом.

К минусам тихой установки можно отнести всякие панели в обозревателях и ярыки типа E-Bay на рабочем столе, поскольку чаще всего подобные бонусы включены в установку по-умолчанию. Но это скорее исключение, хотя и не редкое. Подробно о тихой установке читайте в этой статье.

На самом деле тихая установка - это очень удобная процедура, которая экономит время и упрощает жизнь системного администратора. Я, например, использую режим silent install после чистой установки ОС.

Режим тихой установки включается при помощи параметров или (как их ещё называют) ключей. Если вы не знаете, что это такое, можете восполнить пробел в знаниях при помощи этой статьи: BAT файлы. Запуск процедуры можно осуществить несколькими способами:

  1. Из командной строки, используя параметры.
  2. Аналогично через bat-файл (com-файл).
  3. Через SFX-архив с файлом конфигурации.

Ключей достаточно много. Какой именно ключ нужно использовать зависит от установщика. Т.е. любая программа, говоря простым языком, это папка с файлами, а запаковывает всё это добро в один файл установки специальный сборщик (система создания установщиков ПО). И вот от того, какой сборщик использовался, зависит - какой ключ будет вызывать режим тихой установки. Наиболее известные системы создания установщиков:

  1. Install Shield
  2. WISE Installer
  3. NSIS
  4. Inno Setup

Подробнее о ССИ и их ключах можно посмотреть тут. Также можно попробовать найти нужный ключ с помощью специального ПО - Universal Silent Switch Finder или почитать документацию на сайте разработчиков той программы, ключи к которой вы ищите.

Во время экспериментов с тихой установкой мне встречались следующие параметры запуска режима тихой установки:

Ключи для отмены перезагрузки:

Антивирус Avast имеет опцию тихой установки в корпоративной версии. В бесплатной (Home) версии по заявлениям разработчиков тихой установки нет. Однако, если вы в курсе как работает инсталятор InstallShield , вы поймете, что это утверждение не соответствует действительности, поскольку этот инсталятор сам по себе поддерживает ключ тихой установки /S . А значит все продукты, выполненные на его базе - тоже. И Avast Home не исключение.

Для запуска тихой установки архиватора 7Zip (сборщик NSIS) нужно запустить установщик с ключом /S . Положите установщик 7Zip (7z.exe) в корень диска С. Затем откройте меню Пуск › Выполнить (или + R ) и введите в форму следующую команду:

Архиватор установится без диалоговых окон и признаков внешней активности.

Однако случается что установщик собран нестандартно и ключей для запуска тихой установки у него просто нет. К таким исключениям относится Avira Antivir. По-тихому можно только распаковать содержимое установщика во временную директорию (минус одно окно), а дальше всё. В этом случае приходится создавать специальные самораспаковывающиеся архивы с файлами инструкций внутри. Тут дело обстоит немного сложнее.

Тихая установка с помощью sfx-архивов

Выше я упомянул о случаях, когда вариант с ключами может не работать. Режим тихой установки может быть просто не предусмотрен разработчиком. В этом случае достаточно часто можно выйти из положения, используя sfx-архивы. Sfx-архив – это само-распаковывающийся архив.

Одно из его достоинств в том, что для его распаковки не нужен архиватор. К тому же с помощью него можно существенно расширить возможности тихой установки, да и возможности установки ПО вообще.

Например, сразу после распаковки sfx-архив позволяет запустить один или несколько распакованных файлов, удалить файлы после выполнения операций и много чего ещё. В этих операциях принимают участие конфигурационные файлы, содержащие команды (например, BAT файлы).

При помощи команд можно имитировать процесс тихой установки. Многие установщики, в том числе и упомянутый в прошлой статье Avira, могут работать с файлами инструкций (подхватывать их), при условии, что инструкция находится в том же каталоге, что и установщик. Подробнее об инструкциях (командах, указывающихся в конфигах) можно узнать на сайте разработчика программы или на соответствующих форумах.

Чтобы в общих чертах представить конфигурационный файл (для тех, кто не в курсе) ниже приведён пример такого файла для программы Firefox Portable

Стоит отметить, что возможности и режимы работы программ со временем могут меняться. Firefox Portable может перестать поддерживать ini-файлы, а будущие версии инсталятора Avira – понимать и подхватывать файлы инструкций. Поэтому при экспериментах стоит ознакомиться с актуальной информацией о возможностях программ, которые вы планируете использовать.

Как sfx-архив может помочь процессу тихой установки, я думаю, мы разобрались. Теперь настало время перейти к практической части. Для создания sfx-архивов я пользуюсь доработанным модулем архиватора 7Zip. Весь процесс создания sfx-архива и запуска при помощи него режима тихой установки описан в статье Олега Щербакова (разработчика модуля). Я же очень кратко перескажу написанное в ней, пояснив пару моментов.

Сразу отмечу, что цель примера - запаковать установщик программы в sfx-архив таким образом, чтобы он после распаковки автоматически начинал устанавливаться по-тихому. В данной статье в качестве подопытного будет выступать установщик архиватора 7Zip (7z465.exe), хотя можно использовать любой другой, главное знать ключ тихой установки. У установщика 7Zip это ключ /S . Итак, для исполнения задуманного нам понадобится:

  1. Модуль sfх Олега Щербакова.
  2. Архиватор 7Zip . Им мы будем запаковывать установщик программы в архив формата ".7z". Архиватор, понятное дело, надо установить в систему.
  3. Установщик программы (как я отметил выше, в примере я использую 7z465.exe).
  4. Архив .7z , который мы получим, запаковав установщик программы архиватором 7Zip.
  5. Конфигурационный файл config.txt, в котором будут содержаться иструкции "поведения" sfx-архива при распаковке, т.е. в данном примере в нём будет содержаться команда на запуск тихой установки.
    Заклинание для создания sfx-архива (вводится в консоли).

Для удобства я положил все ингредиенты в один архив, который вы можете скачать по этой ссылке. Также, если скачать вот эту программу, можно поменять иконку архива (как это сделать читайте тут).

Обратите внимание, кодировка файла конфигурации config.txt должна быть UTF-8.

Итак, получаем после скачивания и распаковки папку со всем этим добром, далее по списку:

  1. Устанавливаем архиватор 7zip (лежит в папке).
  2. Запаковываем подопытного 7z465.exe (лежит в папке) в 7z-архив. Получаем на выходе файл 7z465.7z.
  3. Открываем консоль (Пуск › Выполнить - cmd) и переходим в папку с файлами: cd C:files (пример для папки "files" на диске "С").
  4. Запускаем в консоли заклинание:
    • COPY /b 7zsd.sfx + config.txt + 7z465.7z 7Zip.exe
    • 7zsd.sfx - имя модуля sfx.
    • config.txt - имя файла конфигурации.
    • 7z465.7z - имя запакованного установщика 7z465.exe.
    • 7Zip.exe - имя sfx-архива на выходе.

В результате получаем sfx-архив 7Zip.exe, который представляет собой исполняемый файл или самораспаковывающийся архив, внутри которого содержится инструкция config.txt. Содержание инструкции следующее:

  • ;!@Install@!UTF-8!
    ;!@InstallEnd@! – строки начала и конца файла инструкции. Это комментарии, их можно удалить. А вот остальные две нужны обязательно.
  • GUIMode="2" – режим распаковки архива без оповещений (по-тихому).
  • RunProgram="7z465.exe /S" – строка инструкции, в которую необходимо вносить изменения в зависимости от того, какой установщик вы используете. В строке прописывается имя установщика, который запаковывается в 7z-архив и который требуется установить по-тихому + ключ тихой установки.

На этом всё. Ознакомившись со статьями Олега (ссылки выше), можно создать различные архивы, выполняющие абсолютно разные задачи. Удачных экспериментов!

Пожалуй каждый админ сталкивался с проблемами, связанными с различающимися версиями ПО на компах пользователей. У одного стоит WinXP SP1, у другого SP3, второй пользуется Firefox 2 с неработающими обновлениями, третьему в спешке забыли установить антивирус, или неправильно его настроили, у четвертого Word 2007 сохраняет файлы в формате docx, который не понимает openoffice пятого, ну и многое другое. Я тоже значительно пострадал от всего этого и однажды решил привести список ПО и его настройки у пользователей к одному единому знаменателю. Было много проблем и бессонных ночей, но после всего этого, количество проблем и звонков резко сократилось, да и установка новых систем свелась в основном только к вводу пустого компьютера в домен, после чего весь основной софт сам настраивается и устанавливается. А начну я свой рассказ с установки софта из доменного скрипта автозапуска (BAT файла).

\\server\share\autorun\runasspc.exe /cryptfile:"\\server\share\autorun\runasspc.spc" /quiet

Где runasspc.spc – сгенерированный нами файл для запуска файла сценариев \\server\share\autorun\soft_install.bat от имени доменного администратора. Для этой цели я даже сделал отдельного пользователя с паролем по-сложнее и бесконечным сроком действия.

Далее мне потребовался какой-либо оповещатель об установке софта. Для этого я использовал программу Blat, которая позволяет отправлять письма прямо из командной строки. Я выложил ее в доступную всем папку на сервере \\server\share\autorun\blat

Далее собственно файл \\server\share\autorun\soft_install.bat:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

@ECHO OFF
REM Адрес почтового сервера и адреса получателя и отправителя писем
SET MAILS="10.1.1.1"
SET MAILFROM="support@company.ru"
SET MAILTO="support@company.ru"
SET BLAT="\\server\share\autorun\blat\blat.exe"

REM Имена компьютеров, на которые не требуется устанавливать софт
if %COMPUTERNAME%==NOTEBOOK (
exit
)
if %COMPUTERNAME%==WINSERVER (
exit
)

rem ---------------------Service Pack 3 Install-------------------------
REM проверяем установлен ли SP3 в реестре
Reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDversion|Find "Service Pack 3"

if %ERRORLEVEL% == 0 (
ECHO Service Pack 3 Already Installed
goto end
)

ECHO Installing Service Pack 3
"%BLAT%" -server %MAILS% -f %MAILFROM% -to %MAILTO% -s "Soft install on %COMPUTERNAME%. WinXP SP3 install real" -body "%DATE% %TIME% WinXP SP3 Install"
REM Путь к дистрибутиву и команда тихой установки + ключи, не требующие подтверждения установки и отменяющие перезагрузку
"\\server\share\distrib\WindowsXP-KB936929-SP3-x86-RUS.exe" /quiet /passive /norestart

SET PROGRAMMNAME="NOD32"
REM Путь и имя к проверяемого файла
SET FILENAME="C:\Program Files\ESET\ESET NOD32 Antivirus\ekrn.exe"
REM Требуемый размер файла
SET FILESIZENEED="810120"

REM Сравниваем размер файла и если не совпадает с требуемым, или файл не существует - запускаем установку
echo Checking %PROGRAMMNAME%
if exist "%FILENAME%" (
for %%a in (%FILENAME%) do set "FILESIZE=%%

za"
if "%FILESIZE%" == %FILESIZENEED% (
echo Program already install %FILENAME% with size %FILESIZE% bytes
goto end
) else (
echo Need install. File %FILENAME% need to be %FILESIZENEED% bytes, but it %FILESIZE% bytes.
)
) else (
echo Need install. File %FILENAME% not exist.
)

echo Installing programm

REM Отправка письма с оповещением об установке
"%BLAT%" -server %MAILS% -f %MAILFROM% -to %MAILTO% -s "Soft install on %COMPUTERNAME%. NOD32 4" -body "%DATE% %TIME% Begin installing NOD32."
REM Специально созданный reg-файл с нужными настройками NOD32
regedit /s \\server\share\nod32.reg
REM Путь к дистрибутиву и команда для тихой установки (Silent Install)
"\\server\share\distrib\eavbe_nt32_rus_4.msi" /qb! REBOOT="ReallySuppress"

Логика примерно такова:
-проверяем, не установлена ли уже программа (по существованию файла, размеру, ключам реестра и т.п.)
-если нет – запускаем тихую установку (Silent Install)
Практически все известные программы делаются сейчас с режимом тихой установки. Это позволяет устанавливать ее, не выдавая каких-либо окон и не требуя от пользователя действий.
С этой помощью, все компьютеры пользователей у меня теперь работают с набором программ с одинаковыми версиями. Однако приходится бороться с автоматическими обновлениями самих программ – выключать их через реестр, или другими способами. Вот список софта, который устанавливается у меня таким способом:

Service Pack 3
NOD32
Acrobat Reader
7Zip
Internet Explorer
Mozilla Firefox
OpenOffice
FreeImage Editor
Denol Scanner
Punto Switcher
OCS Inventory Agent
Small CD Writer
NTPD
UltraVNC
Miranda IM
Adobe Flash Player
doPDF
и несколько других мелких утилит.

Теперь я точно знаю, что ЛЮБОЙ пользователь может, к примеру, найти на рабочем столе ярлык для программы для записи дисков, что сайт с флеш-содержимым у него откроется корректно и в списке принтеров он найдет виртуальный PDF-принтер

Читайте также: