Запуск Консультант Плюс на сервере терминалов

По умолчанию, руководствуясь непонятной мне логикой, консультант пишет пользовательские данные и конфигурационные файлы (при запуске с ключем /group) на локальную рабочую станцию в корень диска, содержащего каталог %windir%. Сами настройки пути каталога с пользовательскими данными располагаются в реестре по адресу HKCU\Software\ConsultantPlus\ConsultantPlus\3000.

Чтобы научить Консультант Плюс хорошим манерам (читай хранить конфигурационные файлы в пользовательском каталоге) я сбыдлокодил на коленке bat файлик:

SET CAT_PATH={UNC путь к shared-каталогу с Консультантом}
SET ConsUserDataPath=%AppData%\ConsUserData
IF EXIST %ConsUserDataPath% (goto :run) ELSE GOTO :reg

:reg
reg ADD HKCU\Software\ConsultantPlus\ConsultantPlus\3000 /v WrkDir /t REG_SZ /d "%ConsUserDataPath%" /f
mkdir "%ConsUserDataPath%"
goto :run

:run
start /d %CAT_PATH% %CAT_PATH%\CONS.EXE

Комментарии, пожалуй, излишни.

added:

Как подсказал bambr в своем комментарии ниже, существует штатная возможность указать Консультанту путь к конфигам, указав их в файле complect.cfg, который нужно расположить в каталоге base. Выдержка из документации:

В файле complect.cfg теперь можно использовать переменные окружения операционной системы.
Формат файла – обычный текстовый файл.
Первая строка – заголовок окна “Консультант Плюс”.
Вторая – название ярлыка “Консультант Плюс” на рабочем столе.
В третьей строке записывается путь до рабочей директории.

Для примера, содержание может быть таким:

Консультант Плюс
Консультант Плюс
%UserProfile%\Consultant

Здесь %UserProfile% – это каталог C:\Documents and Settings\имя пользователя (для Windows XP/2000) или C:\USERS\имя пользователя (для Windows 7/Vista).

  • Bambr

    В каталоге BASE можно создать файлег COMPLECT.CFG

    Консультант+ | Запрос документов и вопросы по т.00-00-02Консультант+O:РесурсыКонсультантusersall

    Ну и если есть GPP, содавать ей ярлычок для юзеров, указывая рабочую папку
    O:РесурсыКонсультантusers%LogonUser%
    GPP же и создавая зти папки

    где диск О – общий диск dfs или типа того.
    таким образом конфиги юзера для К+ будут ходиьт с ним.

  • wonderful! :) Тетя, которая обслуживает нас заявила, что нет штатной возможности сменить каталог с конфигами, поэтому я и полез в дебри, обнявшись с process explorer.

    Обновлю пост, спасибо :)

  • Aleksandr

    А не проще при публикации Консультант+ в Citrix’е в качестве рабочей директории указать %UserProfile%? у себя так попробовал, работает!

  • Проще, но при деплое я столкнулся с такой проблемой: сотрудник организации, которая обслуживает К+ не знал про функционал, описанный Bambr несколькими постами выше, по-этому К+ гадил по умолчанию в корень диска C: каждого сервера в ферме, из-за чего и пришлось городить этот костыль.

  • Anonymous

    Спасибо за пост, тоже недавно приобщились к “прекрасному”. Есть пара дополнений, вдруг пригодятся:
    1) Первая строка не учитывается, так что имя группы всегда равно ConsultantPlus
    2) Вызвать окно настройки можно командой cons.exe /group
    3) Гадить лучше в папку %appdata% (или даже %localappdata%), а не напрямую в профиле.

  • Anonymous

    Ну и на всякий случай, формирование и отправка отчётов об обновлении через vbs:

    Option Explicit
    Dim objShell, objEmail

    ‘ Generate a report
    Set objShell = WScript.CreateObject(“WScript.Shell”)

    objShell.CurrentDirectory = “E:ConsPlus”
    objShell.Run(“E:ConsPluscons.exe /adm /usr /base* /yes”)

    Set objShell = Nothing

    ‘ Send it
    Set objEmail = CreateObject(“CDO.Message”)

    objEmail.Subject = “Update Report”
    objEmail.From = “from@domain.tld”
    objEmail.To = “to@consultant.ru”

    objEmail.TextBody = “Report in attachment.”
    objEmail.AddAttachment “E:ConsPlusRECEIVE.USR”

    objEmail.Configuration.Fields.Item (“http://schemas.microsoft.com/cdo/configuration/sendusing”) = 2
    objEmail.Configuration.Fields.Item (“http://schemas.microsoft.com/cdo/configuration/smtpserver”) = “mail.domain.tld”
    objEmail.Configuration.Fields.Item (“http://schemas.microsoft.com/cdo/configuration/smtpserverport”) = 25
    objEmail.Configuration.Fields.Update

    objEmail.Send

    Set objEmail = Nothing

  • Anonymous

    Скоро надо будет свой блог заводить :)

  • Хех, к нам днем прибегает специально обученная тетя если вечером обновление не прошло. Да, блог – не самая плохая затея ;)

  • Anonymous

    Внезапно данный способ перестал работать. Проблема у меня одного или в обновлении выпилили это фичу?

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