Развёртывание клиентской части системы документооборота Directum с помощью System Center 2012 R2 Configuration Manager

imageВ рамках внедрения корпоративной системы документооборота (СЭД) Directum была поставлена задача централизованного развёртывания клиентской части этого ПО. “Внедренцами” нам был выдан подготовленный дистрибутив клиентской части c пакетом интеграции в Microsoft Office. Вместе с msi-пакетами нам был предложен командный файл, с помощью которого можно было организовать развертывание ПО из сетевой папки с помощью разных инструментов автоматизации, таких как например Group Policy. Но в силу того, что задача развёртывания осложнялась необходимостью генерации персонального цифрового сертификата (для возможности работы механизма цифровых подписей) для пользователей, было решено расширить функции автоматизации этой задачи с помощью System Center 2012 R2 Configuration Manager (SCCM). Далее мы кратко рассмотрим основные этапы необходимых манипуляций для реализации поставленной задачи по следующему плану:

1. Создание и развёртывание приложения Directum Client в SCCM
2. Создание и развёртывание пакета интеграции Microsoft Office в SCCM
3. Развёртывание скрипта генерации сертификата пользователя в SCCM
4. Централизованная работа с ярлыками с помощью GPP (Group Policy Preferences)

1. Создание и развёртывание приложения Directum Client в SCCM

В консоли SCCM вызовем мастер создания нового Приложения и выбрав пункт “задать сведения о приложении вручную”, введём необходимые данные:

image

 

Введём информацию, которая будет отображаться в Центре ПО и Каталоге приложений:

image

 

При создании Типа развёртывания так же укажем информацию о приложении вручную, оставив при этом тип “Установщик Windows (MSI-файл)”.

Укажем расположение MSI-файла, а также введём строки установки и удаления. Для установки укажем команду:

MsiExec.exe /i "Client.msi" /qn /norestart

Для удаления, согласно имеющейся у нас версии пакета клиента Directum, укажем команду:

MsiExec.exe /x {111AE05F-BE79-4D4C-AD5F-DC652D22E348} /qn /norestart

На мой взгляд, всегда нужно указывать строку удаления. Это может быть полезным, при выполнении замены или полного удаления приложений с компьютеров в перспективе.

image

 

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

image

 

Настроим Взаимодействие с пользователем. Укажем, мастеру о режиме установки для системы без требований к входу в систему.

image

 

Если планируется установка на Коллекции пользователей (установка из Каталога приложений например), будет не лишним добавить требование основного пользователя, но главное, выбрать требование соответствия версиям ОС, на которые SCCM будет устанавливать приложение:

image

Последний шаг Зависимости можно оставить без изменений, так как в нашем примере нет необходимости устанавливать какое-то другое приложение до установки Directum.

В завершении остаётся только распространить контент по Точкам распространения и развернуть на необходимую Коллекцию.

 

2. Создание и развёртывание пакета интеграции с Microsoft Office в SCCM

Пока контент клиента Directum распространяется по Точкам распространения, не будем терять времени и создадим Приложение для развёртывания пакета интеграции с Microsoft Office.

Уже стандартно, создание Приложения начнём с указания вручную всей информации о нём:

image

 

Так же укажем информацию для пользователей которая будет отображаться в Центре ПО и Каталоге приложений:

image

 

При создании Типа развёртывания так же укажем информацию о приложении вручную, оставив при этом тип “Установщик Windows (MSI-файл)”.

Укажем расположение MSI-файла, а также введём строки установки и удаления пакета. Для установки используем:

MsiExec.exe /i "OfficeIntegration-32bit.msi" /qn /norestart

Для удаления используем:

MsiExec.exe /x {A9E6C1E6-C4DE-403B-B9FB-86B510B90F24} /qn /norestart

image

 

При создании Правила обнаружения будем использовать всё тот же верный метод - через указание MSI-файла:

image

 

Так же как и ранее, установим параметры взаимодействия установки для системы без требований к входу в систему:

image

Выберем операционные системы, на которые SCCM будет устанавливать приложение:

image

Фактически компоненты интеграции с Microsoft Office у Directum поставляются в виде x86 и x64 пакетов. Под битностью здесь понимается соответствие битности установленного на клиентские машины пакета Microsoft Office. В нашей организации используется только x86 пакет Microsoft Office, поэтому создавать дополнительный Тип развёртывания для x64 я не буду. Для тех, у кого используются и x86 и x64, на мой взгляд, правильнее всего будет добавить дополнительное настраиваемое Требование в каждый Тип развёртывания, в котором указать например ключи реестра Относящиеся к Microsoft Office в зависимости от битности Microsoft Office. Пример создания глобальных условий был описан ранее в заметке “Развёртывание консоли управления System Center 2012 Operations Manager SP1 с помощью SCCM 2012”.

На шаге Зависимости, нам необходимо указать созданное в первом пункте Приложение:

image

 

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

 

3. Развёртывание скрипта генерации сертификата пользователя в SCCM

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

set vSubject="Directum User"
set vCAPath="msk-subca.holding.com\MSK-SUBCA"

set vTempPath=%SystemDrive%\TempDirectumCertFiles
set vRequestInf=%vTempPath%\RequestConfig.inf
set vRequestBin=%vTempPath%\RequestBinary.req
set vCert=%vTempPath%\UserCert.cer
set vCertChain=%vTempPath%\UserCertChain.p7b
set vCertFullR=%vTempPath%\UserCertFullResponse.ful
mkdir %vTempPath%

rem ................Check Windows Version
for /f "tokens=3*" %%i IN ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName ^| Find "ProductName"') DO set vOSver=%%i %%j
echo %vOSVer% | findstr /C:"Windows XP" > nul
IF %ERRORLEVEL% EQU 0 goto ClientOSWinXP
echo %vOSVer% | findstr /C:"Windows Vista" > nul
IF %ERRORLEVEL% EQU 0 goto ClientOSWinAll
echo %vOSVer% | findstr /C:"Windows 7" > nul
IF %ERRORLEVEL% EQU 0 goto ClientOSWinAll
echo %vOSVer% | findstr /C:"Windows 8" > nul
IF %ERRORLEVEL% EQU 0 goto ClientOSWinAll
goto ClientOSError

:ClientOSWinXP

copy %~dp0certreq.exe %vTempPath%
cd /d %vTempPath%
goto ClientOSWinAll

:ClientOSWinAll
if
exist %windir%\system32\certreq.exe (cd %windir%\system32\) rem ................Create an INF request file del %vRequestInf% echo [Version] > %vRequestInf% echo Signature="$Windows NT$" >> %vRequestInf% echo [NewRequest] >> %vRequestInf% echo Subject="CN=%vSubject%" >> %vRequestInf% echo PrivateKeyArchive=TRUE >> %vRequestInf% rem ................Create a binary request file from the INF del %vRequestBin% certreq.exe -New -config %vCAPath% -f %vRequestInf% %vRequestBin% rem ................Submit the request to our CA and save the certificate certreq.exe -Submit -attrib "CertificateTemplate:Holding-Directum" -config %vCAPath% -f %vRequestBin% %vCert% %vCertChain% %vCertFullR% rem ................Puts the certificate in the user personal store. certreq.exe -Accept %vCertFullR% rem ................Clear files cd /d %SystemDrive% rmdir /s /q %vTempPath% :ClientOSError echo Machine OS cannot be determined.

Следует заметить, что в Windows XP нет по умолчанию утилиты certreq.exe, для этой ОС утилиту можно взять из набора утилит для Windows Server 2003 и положить рядом с скриптом. То есть скрипт рассчитан на запуск из сетевой папки, в которой рядом с этим скриптом будет расположен файл certreq.exe. В процессе работы скрипта будет выполнена проверка версии ОС, на которой этот скрипт запущен, и если это окажется Windows XP, то файл certreq.exe будет скопирован из сетевой папки в локальную временную папку. Для более новых версий Windows (Vista/7/8/8.1) скриптом будет вызываться встроенная в ОС утилита certreq.exe.

Для автоматизации распространения и выполнения данного скрипта так же прибегнем к помощи SCCM. Для выполнения этой задачи в консоли SCCM создадим Пакет.

Вызовем Мастер создания пакета и укажем первичные данные:

image

Тип создаваемой программы в пакете оставим с настройками по умолчанию:

image

Укажем сведения о программе. Обязательно определим Требования для запуска как “Только после входа пользователя” и Режим выполнения как “Запустить с правами пользователя”. Так же желательно задать Тип запуска как “Скрытый”, чтобы пользователи не увидели окна командной строки в процессе выполнения скрипта.

image

 

В требованиях к программе укажем операционные системы на которых программа будет выполнятся. Выбраны все клиентские ОС Windows (на скриншоте видно не полностью из-за длинного перечня ОС).

image

 

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

Спустя некоторое время зайдём на клиентскую систему под учётной записью пользователя, к которому применяется Программа Пакета и проверим хранилище личных сертификатов этого пользователя:

image

 

 

4. Централизованная работа с ярлыками с помощью GPP (Group Policy Preferences)

Помимо развёртывания клиентского ПО перед нами встала отдельная задача развёртывания ярлыка запуска приложения на клиентских компьютерах, так как по определённым причинам ряд параметров подключения к нужной базе данных СЭД передается именно в свойствах ярлыка. Исполняемый файл SBRte.exe запускающий клиентскую оболочку может принимать ряд аргументов, которые в процессе эксплуатации СЭД может потребоваться централизованно изменять. Для решения этой задачи было решено использовать возможности механизмов GPP.

Откроем оснастку управления доменными групповыми политиками, выберем политику применяемую для пользователей и перейдём в раздел Конфигурация пользователя > Конфигурация Windows > Ярлыки

image

Создадим ярлык для x86 систем и укажем необходимые параметры:

image

На вкладке Общие параметры включим нацеливание на уровень элемента и выполнение в контексте безопасности пользователя:

image

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

image

Аналогичным образом необходимо создать ярлык для 64-битных клиентских систем.

***

Проделав описанные действия мы сможем оперативно развернуть клиентское ПО СЭД Directum на все компьютеры как отдельно взятого структурного подразделения, так и всей компании в целом.

Добавить комментарий