воскресенье, 22 ноября 2009 г.

Ещё один способ развернуть клиента DV в сети

Уверен, что многие из читателей занимались установкой клиентской части DV. Способов инсталляции существует немало. Я хочу предложить ещё один, который, на мой взгляд, будет достаточно востребован при установке на n-ое количество компьютеров.

Способ может пригодиться, когда использование групповых политик может быть неприемлемо: нет прав, нет времени, нет AD в конце концов. К тому же, зачастую, для применения политики нужно не менее двух перезагрузок клиентской машины.

Кто-то из читателей наверняка слышал про утилиту psexec. С её помощью можно выполнять команды на удалённом компьютере(-ах). Вот ею мы и воспользуемся.

Ставить будем клиента версии 4.3. Для полноценной его работы требуется .NET Framework 3.5 SP1. По своему опыту могу сказать, что далеко не всегда он установлен, поэтому его тоже включим в скрипт.

Для начала нужно создать два ресурса: один с пакетами инсталляции, второй для журналов установки.
К примеру такие:

\\SERVERNAME\dv_install
\\SERVERNAME\dv_install_logs

Минимальные права для первого - чтение для учётной записи из-под которой будет происходит установка, для второго - чтение\запись для этой же учётной записи.

Если нужно, скачиваем полный дистрибутив NET Framework 3.5 SP1 (231 мб) и кладём его в папку с пакетами клиента DV.

Далее, при помощи генератора преобразований (в консоли настройки) нужно создать преобразования для пакетов DocsVision TakeOffice и DocsVision Client.
В первом пакете, в общем случае, нужно откорректировать значения свойств: BASE_NAME, SERVER_NAME, SITE_URL, SOAP_SERVICE_URL. Во втором - DV_URL. Преобразования сохранить в директории с целевым пакетом.

Теперь нужно создать bat-файлы для установки пакетов.

Файл InstallDVClient.bat

\\SERVERNAME\dv_install\dotnetfx35_wSP1.exe /quiet /norestart

msiexec /i \\SERVERNAME\dv_install\Prerequisites\Prerequisites.msi /quiet /norestart /l* \\SERVERNAME\dv_install_logs\Prerequisites_%COMPUTERNAME%.log
msiexec /i \\SERVERNAME\dv_install\DocsVisionClient\DocsVisionClient1848.msi TRANSFORMS="\\SERVERNAME\dv_install\DocsVisionClient\dv43.mst" ALLUSERS=1 /quiet /norestart /l* \\SERVERNAME\dv_install_logs\Client_%COMPUTERNAME%.log
msiexec /i \\SERVERNAME\dv_install\TakeOfficeClient\TakeOfficeClient1848.msi TRANSFORMS="\\SERVERNAME\dv_install\TakeOfficeClient\dv43.mst" ALLUSERS=1 /quiet /norestart /l* \\SERVERNAME\dv_install_logs\TakeOffice_%COMPUTERNAME%.log
msiexec /i \\SERVERNAME\dv_install\WorkflowClient\WorkflowClient1848.msi ALLUSERS=1 /quiet /norestart /l* \\SERVERNAME\dv_install_logs\Workflow_%COMPUTERNAME%.log
msiexec /i \\SERVERNAME\dv_install\DocsVisionManagedClient\DocsVisionManagedClient1848.msi ALLUSERS=1 /quiet /norestart /l* \\SERVERNAME\dv_install_logs\ManagedClient_%COMPUTERNAME%.log

del %WINDIR%\System32\InstallDVClient.bat


Кому не нужно ставить Framework - убирают первую строку.
Установка будет производиться в режиме "для всех пользователей", на что указывает флаг ALLUSERS=1 (Prerequisites и ManagedClient всегда ставятся в этом режиме). Кому было лень создавать файлы-трансформеры, могут также указать все нужные параметры прямо в файле, но мне это кажется слишком громоздким. Логи будут складываться во вторую шарку. Для каждого компьютера свои логи для каждого пакета.

Файл Install.bat

psexec.exe @C:\DV_Remote_Install\Comps.txt -u Administrator -p password -d -c -f InstallDVClient.bat

В файле Comps.txt хранится список имён (или IP-адресов) компьютеров на которых нужно произвести установку.

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

Параметр -d указывает программе не дожидаться окончания выполнения команды. Если его не указать, то установка будет производиться последовательно на каждом компьютере, что значительно увеличит время развёртывания.

Опции и -f указывают, что файл InstallDVClient.bat нужно перед выполнением предварительно скопировать на целевую машину, т.к. его там изначально нет.

Вот и всё. Можно запускать Install.bat и ждать. NET Framework будет ставиться 10-20 минут, потом установятся пакеты пакеты клиентской части (~5 минут). В случае возникновения проблем смотрим логи.

Таким же образом, в случае необходимости, пакеты можно удалить с клиентских машин. Для этого у msiexec существует ключ -x.



2 комментария:

  1. Михаил, привет. Спасибо за статью. Существует ли способ удалить DV 3.6, установленный для конкретного пользователя? Или единственный способ - запустить скрипт удаления под этим пользователем.

    С уважением, Михаил

    ОтветитьУдалить
  2. Я не автор данного поста. Если речь идет о групповом удалении, то конечно, нужно запустить скрипт удаления.

    ОтветитьУдалить