Использование PowerShell для управления RDS в Windows Server 2012 (часть 2)

Опубликовано: 20 Апреля, 2023

Введение

В предыдущей статье я рассказывал, как использовать PowerShell для настройки базовой среды служб удаленных рабочих столов. В этой статье, среди прочего, мы обсудили, как выполнить быстрое развертывание RDS, добавить коллекцию сеансов и добавить RemoteApp. В этой статье мы немного углубимся в PowerShell для RDS, чтобы посмотреть, как мы можем еще больше автоматизировать установку, настройку и обслуживание служб удаленных рабочих столов с помощью новых команд PowerShell, доступных в Windows Server 2012.

Краткое резюме

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

модуль импорта RemoteDesktop

Затем мы развернули быстрый сценарий с использованием виртуализации сеансов, выполнив следующую команду:
New-SessionDeployment -ConnectionBroker SH01.CRFB.Local -WebAccessServer SH01.CRFB.Local -SessionHost SH01.CRFB.Local
После развертывания мы выполнили следующую команду, которая создала новую коллекцию сеансов внутри развертывания быстрого сценария.

New-RDSessionCollection -CollectionName MySessionCollection -SessionHost SH01.CRFB.Local -CollectionDescription «Эта коллекция служит целям A, B и C» -ConnectionBroker SH01.CRFB.Local

Чтобы завершить, мы завершили его, добавив новое приложение RemoteApp для запуска WordPad.exe.

new-rdremoteapp -Alias Wordpad -DisplayName WordPad -FilePath «C:Program FilesWindows NTAccessorieswordpad.exe» -ShowInWebAccess 1 -collectionname MySessionCollection -ConnectionBroker SH01.CRFB.Local

Следующие шаги

Начиная с этого шага, мы предполагаем, что вышеупомянутые команды были выполнены. Хороший способ получить обзор всех командлетов, доступных внутри модуля PowerShell RemoteDesktop, — выполнить следующую команду:

get-command -module RemoteDesktop

Вывод команды слишком велик, чтобы показать его здесь, но вы можете легко запустить команду самостоятельно и проверить результаты. В качестве следующего шага мы собираемся сделать приложение WordPad.exe RemoteApp также доступным на странице RD WebAccess. Это легко сделать с помощью командлета set-rdremoteapp. Вы можете использовать set-rdremoteapp для настройки всех параметров, которые вы обычно делаете в новом диспетчере серверов. Итак, чтобы настроить наше приложение WordPad.exe RemoteApp, чтобы оно стало доступным внутри RD WebAccess, мы используем следующую команду:

Set-RDRemoteApp -CollectionName MySessionCollection -Псевдоним Wordpad -ShowInWebAccess $TRUE -ConnectionBroker SH01.CRFB.Local

Когда мы обновляем страницу RD WebAccess, нам предоставляется WordPad RemoteApp, и у нас есть возможность запустить его из этого окна.

Изображение 26760
Фигура 1:

WordPad RemoteApp

Теперь давайте попробуем выполнить другую общую настройку с помощью PowerShell. Давайте настроим группу, которой мы хотим разрешить доступ к этому WordPad RemoteApp, чтобы оно было доступно только для этого конкретного набора пользователей. Для этого мы предполагаем, что в Active Directory была создана группа под названием «GG_WordPad_RemoteApp_Users». Затем мы запускаем следующую команду PowerShell:

Set-RDRemoteApp -CollectionName MySessionCollection -Псевдоним Wordpad -UserGroups «GG_WordPad_RemoteApp_Users»-ConnectionBroker SH01.CRFB.Local

Если мы перейдем к консоли диспетчера серверов, мы увидим, что выбранная группа имеет монопольный доступ к этому приложению.

Изображение 26761
Фигура 2:

Консоль диспетчера серверов

Одной из новых функций RD WebAccess в Windows Server 2012 (и я видел много запросов на это на форумах за последние годы!) является возможность создавать подпапки внутри RD WebAccess. Теперь с Windows Server 2012 мы можем настроить это. Очевидно, это можно сделать и через Консоль диспетчера серверов, но ради этой статьи давайте воспользуемся PowerShell.

Set-RDRemoteApp -CollectionName MySessionCollection -Псевдоним Wordpad -FolderName «Основные инструменты» -ConnectionBroker SH01.CRFB.Local

Выполнение этой команды создаст в RD WebAccess подпапку под названием Basic tools и переместит наше приложение WordPad RemoteApp в эту папку. Затем, обновив страницу RD WebAccess, мы сможем увидеть подпапку, которую мы запрашивали для размещения WordPad.

Изображение 26762
Рисунок 3: Создание подпапки с WordPad

Другим распространенным параметром является настройка расширений файлов для RemoteApp. Поскольку в расширениях файла графического интерфейса ServerManager это настраивается как свойство RemoteApp, можно ожидать, что установка расширения файла с помощью PowerShell может быть выполнена с помощью Set-RDRemoteApp. Однако здесь нам нужно использовать другую команду, которая называется Set-RDFileTypeAssociation.

Set-RDFileTypeAssociation -CollectionName MySessionCollection -AppAlias Wordpad -FileExtension.docx -IsPublished $true -ConnectionBroker SH01.CRFB.Local

Когда мы сейчас откроем консоль диспетчера серверов и посмотрим на свойства RemoteApp, мы увидим, что расширение файла.docx было добавлено к RemoteApp.

Изображение 26763
Рисунок 4:

Свойства RemoteApp

Я пытался добавить несколько расширений файлов одновременно разными способами, но кажется, что параметр расширений файлов в Set-RDFileTypeAssociation принимает только одно расширение файла. При попытке сделать это возникают ошибки.

Set-RDFileTypeAssociation -CollectionName MySessionCollection -AppAlias Wordpad -FileExtension «.odt.rtf» -IsPublished $true -ConnectionBroker SH01.CRFB.Local

Set-RDFileTypeAssociation: указанную ассоциацию типов файлов нельзя изменить, поскольку она не существует.

Перед публикацией нового приложения RemoteApp может потребоваться получить обзор того, какие приложения доступны на серверах узла сеансов удаленных рабочих столов. Можно запустить процесс, который обращается к узлам сеансов удаленных рабочих столов и извлекает список программ, которые вы, возможно, захотите добавить, и среди прочих свойств выводит пути к файлам. Команда для использования здесь:
Get-RDavailableApp -CollectionName MySessionCollection -ConnectionBroker SH01.CRFB.Local

И вывод (на стандартном узле сеансов удаленных рабочих столов) выглядит следующим образом:

Изображение 26764
Рисунок 5:

Список программ

Затем вы можете использовать эту информацию для публикации новых приложений RemoteApp с помощью new-rdremoteapp, как мы делали ранее.

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

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

Как вы уже догадались, это можно сделать с помощью одной команды PowerShell, которая будет выглядеть так:
Set-RDDeploymentGatewayConfiguration -GatewayMode Custom -GatewayExternalFqdn rdgw.crfb.nl -LogonMethod Password -UseCachedCredentials $True -BypassLocal $True -ConnectionBroker Sh01.CRFB.Local

Запуск этой команды сгенерирует подсказку:

Подтверждать
Изменение параметров шлюза удаленных рабочих столов развертывания удаленного рабочего стола. Вы хотите продолжить?
[Y] Да [N] Нет [S] Приостановить [?] Справка (по умолчанию «Y»):


После того, как мы подтвердим ввод Y и откроем консоль диспетчера серверов, мы увидим, что свойства, связанные с использованием шлюза удаленных рабочих столов, были изменены так, как мы хотели.

Изображение 26765
Рисунок 6:

Новые параметры шлюза удаленных рабочих столов

Другой пример настройки, которую мы можем сделать с Session Collection, — это настройка лицензирования. Как вы, вероятно, знаете, для развертывания рабочего стола на основе сеанса требуется лицензия клиентского доступа (CAL), которая может быть либо на основе пользователя, либо на основе компьютера. Допустим, в нашем примере мы хотим настроить серверы узла сеансов удаленных рабочих столов в нашем развертывании для связи с определенным сервером лицензий с именем LS01.CRFB.Local, и мы хотим использовать клиентские лицензии на основе пользователей. Команда PowerShell для этого будет выглядеть так:

set-rdlicenseconfiguration -LicenseServer LS01.CRFB.Local -Mode PerUser -ConnectionBroker SH01.CRFB.Local

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

Подтверждать
Изменение параметров лицензии развертывания удаленного рабочего стола. Вы хотите продолжить?
[Y] Да [N] Нет [S] Приостановить [?] Справка (по умолчанию «Y»): y
Вы хотите продолжить?
Сервер(ы) 'LS01.CRFB.Local' не являются действительными серверами лицензий.
[Y] Да [N] Нет [S] Приостановить [?] Справка (по умолчанию «Y»): y




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

Изображение 26766
Рисунок 7:

Настройка лицензирования удаленных рабочих столов

Вывод

С Windows Server 2012 теперь мы можем выполнять любые действия либо из графического интерфейса, либо с помощью команд PowerShell. Набор командлетов внутри модуля RemoteDesktop очень мощный. Хотя в этой статье мы рассмотрели только развертывание рабочего стола на основе сеанса, я могу заверить вас, что аналогичные команды можно использовать и в развертывании рабочего стола на основе виртуальной машины! Помните, что вы можете запустить get-command -module RemoteDesktop, чтобы получить обзор всех различных командлетов.

Использование PowerShell для управления RDS в Windows Server 2012