Здесь вы можете задать любые вопросы по MyChat, по работе программы, её настройке, лицензированию и т.д.
Opticman
Может сложится ситуация, когда необходимо в одной корпоративной сети (с использованием доменов Windows) держать более одного сервера MyChat. Например, в моём случае это основной сервер, где сидят все пользователи, и тестовый сервер, где тестируются новые версии MyChat с целью последующего обновления на них, там сидит небольшое количество тех же самых пользователей (они так же должны одновременно сидеть и на основном сервере).
Тестовая группа пользователей должна сидеть одновременно в двух MyChat Client, подключённых к двум разным серверам. Два экземпляра MyChat Client одновременно запустить невозможно, поэтому я своём случае решил использовать уже имеющийся терминальный сервер (он в домене, так как нужна доменная авторизация MyChat). То есть один MyChat Client установлен и запущен на самом компе тестировщика, а второй работает на терминальном сервере.

Распространение MyChat Client.
В корпоративных сетях MyChat Client удобнее всего распространять в виде msi-клиента через групповую политику установки программного обеспечения, назначенную на конфигурацию компьютера. Именно компьютера, а не пользователя, несмотря на то, что так рекомендовали разработчики MyChat (а то он начнёт ставится для каждого пользователя, логинящегося на этом компьютере, и ни к чему хорошему это на практике не приводит).

Параметры подключения к серверу MyChat.
Параметры подключения к серверу MyChat тоже проще всего раздавать через групповые политики. Например, это может быть сделано в виде политики, в которой в конфигурации пользователя (именно пользователя) в сценарии входа в систему добавлен скрипт, который при выполнении вносит в ветку реестра "HKCU\Software\MyChat Client" необходимые ключи со значениями - Domain, IP, Port, ServerPassword (если используется пароль для подключения клиентов к серверу MyChat) и ServerSSL (если используется), а заодно ещё этот скрипт может подкидывать файл mcsettings.ini, чтобы у пользователей был нужным нам образом кастомизированый MyChat Client. Свой вариант файла скрипта прикладываю ниже, его нужно лишь будет подправить под себя.
Замечу ещё раз - данная политика выполняется в контексте пользователя, то есть прикрепляется не к компьютеру, а к назначенному пользователю (понятное дело, что круг назначенных пользователей зависит от того, с чем вы связали данный объект групповой политики и какие фильтры безопасности применили). То есть, грубо говоря, не имеет значения, на каком доменном компьютере пользователь входит в Windows под собой, политика внесения в реестр параметров подключения к серверу MyChat выполнится всегда (главное, чтобы пользователь под собой входил).
Вот и получается в результате, что на какой компьютер пользователь не придёт (в том числе и на терминальный сервер для тестирования новых версий MyChat), везде MyChat Client будет подключаться к одному и тому же серверу MyChat, так как при входе пользователя в систему каждый раз вносятся параметры MyChat Client в реестр (с помощью вышеупомянутого скрипта). А ведь вручную выбрать другой сервер при использовании msi-клиента и доменной авторизации нельзя, пользователь насильно привязан к основному серверу MyChat. Можно конечно влогинится, пойти в реестр и поменять значения ключей. Но при каждом входе в систему будет применяться политика и перебивать ключи реестра обратно. Как же сделать так, чтобы на некоторых доменных компах MyChat Client при запуске автоматически подключался к другому серверу MyChat?
Задача по сути состоит в том, чтобы пользовательская групповая политика не отрабатывала на определённом компьютере (терминальном сервере). Однако, как выше писалось, пользовательская политика отталкивается только от конкретного пользователя, а то, на каком компьютере это будет происходить, ей вроде бы как и начхать.

Фильтры WMI.
И вот тут на помощь проходят так называемые фильтры WMI (по-крайней мере так они называются в русской версии Windows Server 2008 R2). Они позволяют задать любые дополнительные условия, вообще любые, вплоть до модели материнской платы или версии ОС. В общем всё, что знает сама система WMI. Для тех, кто незнаком с технологией WMI, объяснять её здесь не буду, это целая область, ищите в интернете. Я объясню лишь конкретно, как в данном случае WMI поможет нам.
Фильтры WMI настраиваются примерно там же, где и сами объекты групповых политик. В Windows Server 2008 это соседняя от "Объекты групповых политик" ветка. У нас будет 2 групповых политики с параметрами подключения, каждая со своим фильтром. Первая пара для тех компов, где MyChat Client должен подключаться к основному серверу MyChat, а вторая пара для терминального сервера, где нужно подключение ко второму серверу MyChat. Про создание соответствующих пользовательских групповых политик с параметрами подключения к серверу MyChat я написал выше. Оба объекта групповых политик должны быть уже созданы, связаны с нужными подразделениям и с нужным вам образом заполненным фильтром безопасности. Теперь создаём новый фильтр WMI, как-нибудь именуем его, добавляем запрос, пространство имён оставляем "root\CIMv2" (должно быть именно оно), а сам текст запроса следующий:

select * from Win32_ComputerSystem where DNSHostName != "test-server"

Где "test-server" - это тот самый сервер, обязательно в кавычках.
Идём в первую групповую политику (для всех остальных компов) и там добавляем этот фильтр. Теперь эта политика выполнится при входе пользователя в систему на любом компьютере, кроме "test-server".
Создаём второй фильтр, там текст запроса будет:

select * from Win32_ComputerSystem where DNSHostName = "test-server"
Во второй политике (для терминального сервера) добавляем этот фильтр. Теперь эта политика выполнится лишь при входе на терминальный сервер.

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

P.S.
По поводу приложенного скрипта. Написан на VBS. Он состоит из 3 секций - внесение параметров подключения к серверу MyChat, подкидывание файла настроек mcsettings.ini (для кастомизации MyChat Client) и добавляет MyChat Client в автозагрузку. Если вам что-либо из этого не нужно, то удаляйте или комментируйте всю секцию сразу (именно всю). Там где скрипт вносит в реестр ключи Domain, IP, Port, ServerPassword, ServerSSL - не забудьте сменить их значения на свои. То же самое и про подкидывание файла "mcsettings.ini" - укажите свой адрес до файла.
Вложения
(1.48 КБ) Скачиваний: 279