Доступ к приложениям в окне через RemoteAPP

Posted by

Итак всем привет и хорошего дня, сегодня я покажу на практике, как сделать следующее:

Задача: на терминальном сервере активировать службу и опубликовать приложение клиента на подключение к развернутому кластеру 1C.

Предварительные действий:

На сервер установлен гипервизор ESXi, а уже внутри него под каждую задачу развернуты виртуальные системы:

Но пока как заготовка, терминальный сервер я разверну на сервере базы данных и кластере (все на одной машине).

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

Для чего нужен RemoteAPP – это технология расширения функционала терминального сервера посредством которой можно вместо того, чтоб каждому пользователю настраивать удаленное подключение где он будет работать с приложениями (Почта, 1С, печать и другими) сделать так чтобы у него на компьютере был вынесен ярлык через который запускается удаленная сессия с запуском опубликованного приложения.

К примеру: у меня сейчас два офиса, в одном (он же главный) располагается кластер + база и терминальный сервер и вместо того, чтобы пользователи через удаленный рабочий стол заходили на терминальный сервер из другого офиса (это каждому нужно настраивать профиль: вывести ярлыки программ, организовать печать, обеспечить интернетом (а по соображениями безопасности я этого сделать не могу, просто так надо) у них на своих рабочих компьютерах настроен ярлык на запуск только опубликованного приложения. В рамках этой заметки я покажу на практике как это выглядит.

Создаю приложение которое будет опубликовано с использованием RemoteAPP на терминальном сервере:

Start – Control Panel – Administrative Tools – Server Manager – Roles – Remote Desktop Services – RemoteApp Manager (srv-host.nemdomb.local) – запускаю мастер: Add RemoteApp Programs, нажимаю Next, следующим шагом показывается какие текущие установленные приложения на терминальном сервере могут выступить в роли опубликованных через RemoteAPP, выбираю самое первое Предприятие через нажатием на кнопку Properties можно:

  • переименовать добавляемое приложение
  • Изменить путь запуска до исполняемого файла
  • Изменить алиас
  • Настроить запуск клиента 1С с опциями запуска (к примеру подключение к опеределенной базе под определенным пользователем и паролем: /ENTERPRISE /S “1ccluster\base” /N “test” /P “test” — Здесь подключение к кластеру с именем 1ccluster, base – название базы, test test – пользователь и пароль в этой базе)

Я же в рамках этой заметки не буду настраивать ничего в свойствах, а просто выбираю приложение: —

Выбираю приложение которое будет работать через RemoteAPP

Нажимаю на кнопку Next и перехожу к этапу мастера где отображается результирующая информация по настройкам публикуемого приложения, если все правильно и ничего не нужно изменять нажимаю Finish

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

RemoteApp приложение можно распространять, как через rdp &.msi файлы

Опубликованное приложением можно экспортировать, как rdp файл настроенного подключение так и как msi пакет (можно поставить локально его на компьютере пользователя или же через GPO установить)

Если выбрать экспорт в виде RDP файла: Create .rdp File, по умолчанию путь куда предлагает мастер экспорта сохранить rdp файл подключения: C:\Program Files\Packaged Programs, но никто не мешает изменить данный путь на любой другое более удобный. Я оставляю по умолчанию

Каталог где располагаются файлы RemoteApp: rdp & msi

Следующим шагом также выводится результирующая информация – если все хорошо то нажимаем кнопку Finish и откроется explorer местонахождения экспортированного файла опубликованного приложения , если открыть свойства данного rdp файла, то можно обнаружить что в настройки подключения к терминальному сервере уже автоматически подставляются аутентификационные данные текущей сессии на компьютере:

Свойства подключения rdp файла опубликованного приложения

Теперь копирую данный файл: 1cv8s.rdp на рабочую станцию с которой пользователь alektest будет взаимодействовать клиентом 1С Предприятие.

На заметку: чтобы передать файл простым копирование через проводник:

\\w7x86\с$ на рабочей станции в настройках брандмауера должны быть включены входящие правила:

  • Общий доступ к файлам и принтерам (входящий трафик SMB) – Профиль (Домен).
  • Общий доступ к файлам и принтерам (эхо-запрос – входящий трафик ICMPv4) – Профиль (Домен)

На заметку: пользователи которые задействуют RemoteAPP приложения на терминальном сервере должны быть в группе Remote Desktop Users

Запускаю на рабочей станции Windows 7 (W7X86) переданный файл предварительно авторизовавшись в системе под учетной записью alektest

Запускаю приложение RemoteAPP установленное на рабочей станции

На следующем шаге ввожу пароль на авторизацию на терминальном сервере: (Практичнее будет использовать SSO, т.е. авторизация на терминальном сервере с использование доменной учетной записи, а на терминальном сервере в группу “Пользователи удаленного рабочего стола” (Remote Desktop Users) добавить группу “Пользователи домена”).

Авторизуюсь на терминальном сервере

На заметку: если задействовать SSO то вводить ничего не придется, будет задействована доменная аутентификация без какого либо ввода пароля.

Ожидаю… Идет подключение к приложению

Идет подключение к приложению RemoteAPP

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

Настраиваю клиент 1С для работы с базой

Нажимаю “Да” — после выбираю: “Добавление в список существующей информационной базы” —

  • Укажите наименование информационной базы: zup
  • Выберите тип расположения информационной базы: На сервере 1С:Предприятия

Затем на следующем шаге указываю параметры информационной базы:

  • Кластер серверов 1С:Предприятия: 10.7.8.63
  • Имя информационной базы в кластере: zup

Затем на следующем шаге все выбранное мастеров оставляю по дефолту

На этом установка клиента на подключение завершена.

В итоге будет так:

Окончательный вид настроенного клиента 1С на работу

Подключаюсь к данной базе zup нажатием на 1С:Предприятие и происходит подключение к базе путем ввода логина и пароля выданного Администратором (хотя может и Вы можете совмещать две должности вместе: системный администратор + администратор ).

Авторизуюсь в 1С

И вот вы внутри:

Я успешно авторизован в базе 1С посредством клиента 1С

 

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

Ниже скришот демонстрирует, открытое окно клиента и “Диспетчер задач” во вкладке “Процессы” которого присутствует подключение к терминальному серверу через (mstsc.exe).

Работа в 1С на рабочей станции отъедает всего лишь менее 20Мб оперативной памяти на компьютере

Чтобы задейстовать технологию EasyPrint и не ставить драйвера на терминальный сервер к рабочим станциям в домене предъявляются следующие требования:

Версия RDP клиента должна быть 6.1 или выше, посмотреть c:\windows\system32\mstsc.exe открыть свойства и посмотреть версию
Либо через командную строку
C:\Users\aollo>wmic datafile where name='c:\\windows\\system32\\mstsc.exe' get version
Version
6.1.7601.17514

Должен быть установлен .NET Framework 3.5 и выше, посмотреть что установлено в системе, так.: Открыть командную строку (c правами Администратора) и набрать следующую команду:
wmic product where "name like 'Microsoft .NET Framework%'" get name,version

На заметку: когда пользователь закрывает нажатием на крестик (или ФайлВыход), то его сессия на терминальном сервере не закрывается, а все еще находится в состоянии подключения

Закрытая 1С у пользователя не означает что сессия завершилась

он может снова подключиться, но теперь введя пароль не забыть поставить галочку “Запомнить учетные данные” чтобы больше не видеть данное окно.

Чтобы каждый раз не вводить пароль на подключение к терминальному серверу - ставим галочку о его сохранении

Если же по каким бы то ни было причинам, пароль был введен и сохранен, а в последствии пользователь его изменил (обычно по централизованной политике раз в 3 месяца), то он не сможет подключиться, т.к. пароль запомнен изменить его можно вот так:

На рабочей станции пользователя: Windows 7 – Пуск – Панель управления – Диспетчер учетных записей, находим сохраненное подключение

Через диспетчер учетных данных пароль можно изменить на рабочей станции

Нажимаем “Изменить” — и меняем пароль поле которого выделено на представленном скрипншоте ниже:

Изменяем сохраненный пароль

Согласитель, не хорошо, что когда клиент закрыт, сессия на терминальном сервере все еще висит, в таком случае на терминальном сервере настраиваются промежутки ограничения простоя и неактивности терминального соединения:

Если сессия не активно в течении одного дня – она завершается, если в статусе Disconnected то через 15 минут она закрывается.

Ограничиваем сессия на терминальном сервере которая находится в статусе Disconnected

Если же экспортировать приложение RemoteAPP не в rdp файл, а в msi пакет, то

  • либо такжепередаем через проводник данный файл
  • либо через подготавливаем групповую политику:

GPO_RemoteAPP — Configuration — Policies — Software Settings — Software Installation — и путь в расшаренной папке до msi пакета RemoteAPP

Групповая политика на установку RemoteAPP приложения - нужен msi файл

После перезагрузки рабочей станции на рабочем столе пользователя будет ярлык

Групповая политика отработала - ярлык 1С на рабочем столе

Если ранее уже через rdp файл было настроено подключеник к базе, то когда через GPO произвели установку msi пакета найстройки подключения в клиенте уже присутствуют:

Если 1С клиент уже использовался то настройки подхватятся

У меня было что политика применилась к компьютеру, но msi все равно не устанавливалась, в логах на компьютере Windows 7 были следующие ошибки:

  • Event ID: 303 → Удаление назначения приложения 1C Предприятие из политики GPO_RemoteAPP выполнено успешно.
  • Event ID: 108 → Не удалось применить изменения для параметров установки приложения. Невозможно выполнить изменения для этого программного обеспечения. Должны существовать предшествующие записи в журнале, содержащие необходимые сведения. Ошибка: %%1612
  • Event ID: 1085Windows не удалось применить параметры «Software Installation«. Параметры «Software Installation» могут иметь свой собственный файл журнала. Щелкните ссылку «Дополнительные сведения«.

Проблема была в месте откуда в момент создать групповой политики я указывал месторасположением msi файла, у компьютера не было прав доступа в данный каталог. Права на каталог месторасположения msi файла должны быть, чтобы у группы “Прошедшие проверку” были права на чтение (Чтение и выполение,Список содержимого папки,Чтение) и только тогда msi успешно отработает.

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

  • Развернут терминальный сервер
  • Профиля будующих пользователей вынесены на отдельный логический диск.
  • Посредством компоненты RemoteAPP и установленного ПО на сервере собраные пакеты задействующие технологию RemoteAPP для использования ПО, как будто оно установлена на рабочих местах пользователей, а все на самом деле не так, они работают в терминале. Таким образом достигается меньшая нагрузка на сеть.
  • Чтобы запускать на рабочих станциях опубликованное приложение RemoteAPP, можно раз ввести аутентификационные данные на подключение к терминальному сервере или задействовать SSO.
  • Также посредством GPO можно msi файл опубликованного приложения установить всем тем сотрудникам которые работают в программе .
  • На терминальном сервере можно централизованно по каждому профилю раскидать файл конфигурации на подключение к кластеру и соответствующей базе. Об этом будет одна из следующих заметок.

Ну а пока я прощаюсь, я и так довольно много всего рассмотрел и не зачем еще более увеличивать данную заметку. Лучше много мелких и по теме, чем все сразу. До новых встреч, с уважением автор блога – ekzorchik.