В компании, в которой я работаю, используется правовая система Гарант (раньше использовалась аналогичная система Консультант+). Так как филиалы компании распределены по всей стране, а сервер с базой данной программы установлен в центральном офисе, то для быстрой работы в системе было принято установить клиент системы Гарант на терминальный сервер, а пользователям передавать экран клиента через удаленное подключение сервера Microsoft RDS 2012.
Для установки клиента на терминальный сервер необходимо подготовить сам сервер:
- установить операцилнную систему Windows Server 2012 Standard,
- установить антивирус на сервер,
- настроить языки и региональные стандарты,
- настроить файрвол,
- установить NetFrameWork 3.5 (требуется для клиента).
В установке NetFrameWork 3.5 на сервер есть небольшая хитрость, так как установщик пакета NetFrameWork 3.5 не запускается на сервере, а версия 3.5 не входит в стандартную установку Windows Server 2012. Для установки NetFrameWork 3.5 необходимо смонтировать ISO операционной системы, например как диск D:, а после этого выполнить команду
dism /online /enable-feature /featurename:NetFX3 /all /Source:D:\sources\sxs /LimitAccess
Когда сервер готов, то можно устанавливать клиент системы Гарант (или Консультант +), в настройках которого указать базу данных своего локального сервера системы Гарант (или Консультант +) - имеется ввиду создание ярлыка на исполняемый файл, расположенный на сервере системы.
Далее, для корректной работы клиента на терминальный сервер нужно настроить браузер, установить почтовый клиент, просмотрщик XLS-файлов и текстовых документов.
В качестве почтового клиента на отправку файлов можно использовать Windows Live Mail, который сконфигурировать на почтовый сервер предприятия. Например, можно настроить всем пользователям отправку писем с общего адреса noreply@mydomain.com, для этого нужно в Logon-скрипт пользователей на терминальном сервере прописать такие строки:
'On Error Resume Next set oShell = CreateObject("wscript.shell") oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\Default Mail Account", _ "account{894DF4D0-E3F4-4EED-9C5B-3A5DC2F8AC4D}.oeaccount","REG_SZ" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\Store Root", _ "%USERPROFILE%\AppData\Local\Microsoft\Windows Live Mail\","REG_EXPAND_SZ" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\First Run Done", _ 00000001,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\Mail Is Ready", _ 00000001,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\Show Replies To My Messages", _ 00000000,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\mail\Accounts Checked", _ 00000001,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\mail\Check Mail on Startup", _ 00000000,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\mail\SaveInSentItems", _ 00000000,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\mail\Send Mail Immediately", _ 00000001,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live Mail\Spelling\SpellEnableInlineSpellcheck", _ 00000000,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows Live\Common\TOUVersion", _ "16.0.0.0","REG_EXPAND_SZ" oShell.RegWrite "HKCU\Software\Clients\mail\", _ "Windows Live Mail","REG_EXPAND_SZ" mScriptFolder = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) _ - Len(WScript.ScriptName)) oShell.Run mScriptFolder & "\LiveMailSettings.bat"
Файл LiveMailSettings.bat содержит следующие строки:
md "%localappdata%\Microsoft\Windows Live Mail" copy "%~DP0account{894DF4D0-E3F4-4EED-9C5B-3A5DC2F8AC4D}.oeaccount" ^ "%localappdata%\Microsoft\Windows Live Mail\"
Файл профиля account{894DF4D0-E3F4-4EED-9C5B-3A5DC2F8AC4D}.oeaccount можно взять из папки AppData\Microsoft\Windows Live Mail текущего пользователя, предварительно запустив Live Mail и сконфигурировав его на почтовый сервер предприятия в мастере настроек почтового клиента. Подробнее об этом написано в заметке Servers - Почтовый клиент для терминального сервера.
В качестве просмотрщика DOC-файлов можно использовать WordPad, который есть в наборе программ сервера.
В качестве просмотрщика XLS-файлов можно использовать Microsoft Office Excel Viewer, который можно скачать с сайта Microsoft.
Для правильной работы браузера терминального сервера можно понизить безопасность Internet Explorer, либо внести необходимые сайты в доверенные узлы следующим logon-скриптом пользователей:
'On Error Resume Next oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\garant.ru\http", _ 00000002,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\service.garant.ru\http", _ 00000002,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\gardoc.ru\http", _ 00000002,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\garantexpress.ru\http", _ 00000002,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\garant.ru\http", _ 00000002,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\service.garant.ru\http", _ 00000002,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\gardoc.ru\http", _ 00000002,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\garantexpress.ru\http", _ 00000002,"REG_DWORD" oShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\security_F1Shell.run\about", _ 00000002,"REG_DWORD"
Когда клиент системы полностью настроен и протестирован, то его можно публиковать в пуле приложений RDS сервера.
Так как клиент системы гарант не установлен на терминальный сервер, а является всего лишь ярлыком на исполняемый файл основного сервера, то для публикации клиента в RDS портале необходимо создать промежуточный VBS-скрипт Garant.vbs с таким содержимым (для клиента Консультант+ подход аналогичный):
'On Error Resume Next set oShell = CreateObject("wscript.shell") Set oFSO = CreateObject("Scripting.FileSystemObject") sWorkFolder = oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Garant" If NOT (oFSO.FolderExists(sWorkFolder)) Then oFSO.CreateFolder(sWorkFolder) End If oShell.CurrentDirectory = sWorkFolder oShell.Run "\\GarantServer\Garant-Client$\garant.exe"
В папку со скриптом запуска клиента нужно скопировать иконку приложения, например Garant.ico.
Когда все части для публикации готовы, то можно публиковать программу в портале RDS следующей PowerShell командой:
New-RDRemoteApp -CollectionName "RDS Garant" -Alias "Garant" -DisplayName "Гарант" -FilePath "C:\Scripts\Garant\Garant.vbs" -IconPath "C:\Scripts\Garant\Garant.ico" -FolderName "Юристам"
Либо опубликовать программу через остнастку RDS, а иконку установить PowerShell командой:
Set-RDRemoteApp -CollectionName "RDS Garant" -Alias "Garant" -IconPath "\\RDSserver.mydomain.com\c$\Scripts\Garant\Garant.ico"