Публикация приложения RemoteApp на в ферме серверов RDS

В Windows Server 2012 консоль Server Manager работает таким образом, что при попытке публикации приложения RemoteApp, для которого выбран исполняемый файл расположенный на общем сетевом ресурсе, возникает грозное уведомление о том, что мы можем выбирать исполняемые файлы расположенные только на каком-то конкретном сервере RD Session Host (RDSH)…

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

Рассмотрим публикацию приложения RemoteApp с помощью PowerShell на примере КонсультантПлюс.Но сначала сделаем небольшое отступление в сторону описания особенностей использованияКонсультантПлюс в распределённой многопользовательской среде. В нашем примере исполняемый файл этого приложения (cons.exe) расположен вместе с файлами правовых баз данных в общем сетевом каталоге. Нам нужно опубликовать это приложение для пользователей фермы RDS состоящей из нескольких серверов. В ферме RDS используется механизм перемещаемых профилей Roaming User Profiles. Наше приложение для сохранения пользовательских настроек использует специальные служебные каталоги ConsUserData. Поэтому, учитывая нашу специфику перемещаемых профилей, создадим специальный ярлык (*.lnk) для запуска КонсультантПлюс в ферме RDS в режиме RemoteApp.

Дадим ярлыку имя, например CONS_RemoteApp.lnk и разместим его в той-же сетевой папке, где расположен сам исполняемый файл приложения. В качестве рабочей папки обязательно укажем значение ссылающееся на переменную %AppData% которая указывает на часть пользовательского профиля, которая обрабатывается механизмом Roaming User Profiles (это позволит нам добиться того, что при входе на любой сервер фермы RDS, пользователь будет иметь одни и те же настройки в КонсультантПлюс)
Так как с свойствах ярлыка мы указали каталог (%AppData%ConsUserData), которого не существует для вновь создаваемых профилей пользователей, нам придётся позаботиться о его создании, например с помощью Group Policy Preferences (GPP). Создадим в групповой политике применяемой к пользователям на серверах RDS соответствующую настройку GPP в разделе
User ConfigurationPreferencesWindows SettingsFolders

Теперь всё что нам остаётся сделать, это опубликовать созданный ярлык с помощью PowerShell:
Import-Module RemoteDesktop
New-RDRemoteApp-AliasConsultantPlus`-DisplayName»Консультант Плюс»`-FilePath»FileServerConsultantPlusCONS_RemoteApp.lnk» `-IconPath»FileServerConsultantPluscons.exe»-IconIndex0`-ShowInWebAccess1`-collectionname»KOM-AD01-RDCOLL»`-ConnectionBroker»KOM-AD01-RDS21.holding.com»

Если мы включаем признак публикации приложения на веб-странице RD Web Access и при этом там используются папки, то указать папку в которую нужно разместить ярлык можно добавив к команде ключ:
-FolderName «Бизнес приложения»

Если необходимо ограничить доступ к публикуемому приложению, то к команде можно добавить ключ определяющий перечень доменных групп безопасности:
-UserGroups @(«KOMAccountants»,»KOMLawyers»)

Практика показывает, что на текущий момент, опубликованное таким образом приложения отображаются в консоли Server Manager , но при попытке сохранить изменение их свойств возникает ошибка…

Поэтому, если потребуется изменить свойства такого RemoteApp приложения, путь один – PowerShell.