Чат для термінального сервера

Загальна задача, в цілому, проста: потрібно запустити корпоративний чат, але щоб усі користувачі користувались ним в термінальних сесіях. Фізично вони працюють на одному Windows-сервері.

Автору цієї статті довелось побачити багато збочень на кшталт запуску Skype в користувацьких сесіях чи спроби працювати з OpenFire і його занадто вибагливий в плані використання пам'яті XMPP клієнтом Spark. Або безсерверні варіанти типу Vypress, які не можуть працювати коректно в терміналках в принципі.

Тому, поговоримо про чотири важливі вимоги для роботи чату в термінальному середовищі:

  1. Просте встановлення
  2. Мінімальна витрата оперативної пам'яті
  3. Клієнти чату не повинні заважати один одному
  4. Просте оновлення

В статті буде йти мова про останню версію чата MyChat 7.0 від 7 червня 2018 року.


1. Просте встановлення


Сервер MyChat встановлюэться стандартно, без будь-яких хитрощів. Можна запустити його як звичайну програму, або як службу. Можна ставити на термінальний сервер, можна на будь-який інший комп'ютер або віртуальну машину — не принципово.

Далі, запускаємо на термінальному сервері інсталятор MyChat Client. На етапі установки, коли він спитає, в яку папку варто ставити програму, виберіть "Program Files":

Вибір папки для установки MyChat Client

Що ж, програму встановлено, тепер потрібно якось без проблем зареєструвати користувачів і дати їм доступ до сервера чату.

Скоріше всього це можна зробити додавши в автозавантаження усім користувачам термінального серверу рядок типу:

"C:\Program Files (x86)\MyChat Client\mcclient.exe" /auto -server "192.168.1.50" -randompassword

Опис ключа /auto в довідці

Таким чином, ми одразу прописуємо усім користувачам адресу сервера і автоматично реєструємо їх на MyChat Server-і під ім'ям Windows-користувача і випадково згенерованим паролем. Програма MyChat буде автоматично підключатись до сервера одразу після входу в термінальну сесію, нічого не треба буде вводити додатково.


2. Мінімальна витрата оперативної пам'яті


MyChat Client під Windows — це класична win32 програма, котра не потребує.NET, тому вона добре працює навіть на застарілих операційних системах типу Windows XP, котрі все ще використовуються у великих кількостях у більшості міст.

Оскільки кількість фізичної пам'яті на термінальному сервері обмежено, адміністратор повинен приблизно знати, які програми будуть працювати у користувачів, щоб розрахувати кількість оперативної пам'яті на кожну людину.

Корпоративний чат — не сама важлива програма, є ще 1С, офісні програми і багато чого додатково. Однак чат буде працювати весь час, на фоні. Тому кількість споживання пам'яті має бути мінімальною.

На скріншоті показано типову ситуацію звичайного Windows-користувача на Windows 8:

Споживання пам'яті програмами Skype, Viber, MyChat в диспетчері задач Windows

58 мегабайт — вельми терпимо у порівнянні зі Skype, Viber і схожими на них інтернет-месенджерами. Не забуваємо, що MyChat — це офісний месенджер, котрий може працювати навіть без Інтернету, лише у вашій мережі.


3. Клієнти чату не повинні заважати один одному


Щоб користувачі могли передавати документи всередині термінального сервера, потрібно налаштувати систему передачі файлів за умовчанням. Це легко зробити в адмінці сервера, щоб не займатись налаштуванням індивідуально, для кожного користувача.

Заходимо в амінку, розділ "Інструменти", "Шаблони налаштувань клієнтів", і робимо новий шаблон:

Створення нового шаблону для файлів термінального сервера в адмінці сервера MyChat

А потім призначаємо цей шаблон "terminal-files" тій групі прав, куди ви розміщуєте усіх зареєстрованих користувачів. У мене це "Guests":

Призначення групи прав для шаблону файлів термінального сервера в адмінці MyChat

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


4. Просте оновлення


Оновлення на нову версію відбувається в два етапи: спочатку вимикаємо сервер MyChat, оновлюємо його поверху, а потім оновлюємо єдиний MyChat Client на сервері, також поверху. Вся історія і налаштування зберігаються. Оновлювати можна, пропускаючи версії, наприклад, з 5.0 одразу на 7.0, минаючи всі проміжні версії.

Але є одна проблема. Як перед оновленням вивантажити всі користувацькі копії програми MyChat Client, якщо це, наприклад, обідня перерва, не завершуючи їхні користувацькі сесії в терміналі?

Для цього є гарне рішення, спеціальний скрипт для вимушеного відключення і завершення роботи всіх клієнтських програм. Його слід виконувати перед оновленням сервера MyChat.

Офіційна довідка щодо оновлення месенджера MyChat на термінальному сервері.

Служба поддержки