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

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

Введение

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

Давайте начнем

В качестве первого шага давайте импортируем новый модуль RemoteDestop, доступный в Windows Server 2012. Мы можем сделать это с помощью следующей команды;

PS C:Usersadministrator.CRFB> import-module RemoteDesktop

Теперь было импортировано некоторое количество командлетов, особенно для служб удаленных рабочих столов. Следующая очевидная команда, на которую следует обратить внимание, — это команда для выполнения развертывания на основе сценария. Как вы, возможно, знаете, для служб удаленных рабочих столов в Windows Server 2012 существует два способа развертывания. Существует установка на основе ролей и функций, которая также была доступна в Windows Server 2008 (R2), но новой в Windows Server 2012 является развертывание на основе сценария. При таком типе развертывания вы определяете полный сценарий и позволяете мастеру установить все необходимые роли вместо того, чтобы вручную устанавливать и настраивать все отдельные роли.

Установка развертывания рабочего стола на основе сеанса

В этом примере мы будем эмулировать быстрое развертывание, то есть установим все начальные роли развертывания (узел сеансов удаленных рабочих столов, посредник подключений к удаленному рабочему столу и веб-доступ к удаленному рабочему столу) на одном сервере. В этом сценарии используется команда New-SessionDeployment.

СИНТАКСИС
New-SessionDeployment [-ConnectionBroker] <string> [-WebAccessServer] <string> [-SessionHost] <string[]>

Чтобы выполнить быстрое развертывание рабочего стола на основе сеанса, мы запускаем следующую команду;

New-SessionDeployment -ConnectionBroker LS01.CRFB.Local -WebAccessServer LS01.CRFB.Local -SessionHost LS01.CRFB.Local

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

Сначала проверяется желаемая установка.

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

Затем установка начинается с установки роли посредника подключений к удаленному рабочему столу.

Изображение 26810
фигура 2

После этого устанавливается роль RD Web Access.

Изображение 26811
Рисунок 3

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

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

На завершающем этапе все роли «склеиваются» и готовы к дальнейшей настройке.

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

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

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

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

Как вы, возможно, знаете, новым RDS в Windows Server 2012 являются коллекции. Если вы установите Quick Deployment, как описано ранее, используя графический интерфейс, он также установит и настроит первую коллекцию. Это подводит нас к следующему шагу — установке новой коллекции с помощью PowerShell. Следующая команда сделает это; New-RDSessionCollection.

СИНТАКСИС

New-RDSessionCollection [-CollectionName] <string> -SessionHost <string[]> [-CollectionDescription <string>] [-ConnectionBroker <string>] [<CommonParameters>]

Чтобы выполнить установку новой коллекции внутри созданного ранее развертывания, мы запускаем следующую команду;

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

Опять же, мы получаем хороший индикатор выполнения установки и настройки, который выглядит как скриншот ниже.

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

Кроме того, когда настройка завершится, мы получим следующую сводку;

Изображение 26816
Рисунок 8:

Резюме

Когда мы обновим Диспетчер серверов, мы увидим, что коллекция фактически успешно установлена и настроена.

Изображение 26817
Рисунок 9:

Коллекции

Кроме того, установлена общая информация, которую мы предоставили в командной строке.

Изображение 26818
Рисунок 10:

Главная Информация

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

Установка развертывания на основе виртуальной машины

Те же шаги можно использовать для установки и настройки другой разновидности RDS, развертывания на основе виртуальной машины. Команда для создания развертывания на основе виртуальной машины — New-RDVirtualDesktopDeployment, и соответствующая оболочка выглядит следующим образом.

СИНТАКСИС

New-RDVirtualDesktopDeployment [-ConnectionBroker] <string> [-WebAccessServer] <string> [-VirtualizationHost] <string[]> [[-CreateVirtualSwitch]] [<CommonParameters>]

Если мы укажем одинаковые значения для RD Connection Broker, RD WebAccess и RD Session Host (в данном случае RD Virtualization Host), это приведет к конфигурации, сравнимой с той, которую вы получите при запуске быстрого развертывания с использованием графического интерфейса.

После завершения установки можно использовать следующую команду для создания коллекции для этого развертывания; New-RDVirtualDesktopCollection.

Синтаксис этой команды следующий;

СИНТАКСИС
New-RDVirtualDesktopCollection [-CollectionName] <string> -PersonalUnmanaged -VirtualDesktopName <string[]> [-Description <string>] [-UserGroups <string[]>] [-ConnectionBroker <string>] [-AutoAssignPersonalVirtualDesktopToUser] [-GrantAdministrativePrivilege] [-Force] [<Общие параметры>]

И, конечно же, можно указать гораздо больше параметров, если мы делаем стандартное (не быстрое) развертывание.

Создание удаленных приложений

Модуль RemoteDesktop PowerShell также позволяет создавать, обновлять и удалять приложения RemoteApp. Существует команда PowerShell для получения приложений RemoteApp и их свойств из указанной коллекции и посредника подключений к удаленному рабочему столу. Это командлет Get-RDRemoteApp. Например, для получения всех RemoteApp можно использовать следующую команду.

Изображение 26819
Рисунок 11:

RemoteApps

Команда для создания нового RemoteApp — New-RDRemoteApp.

СИНТАКСИС
Set-RDRemoteApp [-CollectionName] <string> -Alias <string> -VirtualDesktopName <string> [-DisplayName <string>] [-FilePath <string>] [-FileVirtualPath <string>] [-ShowInWebAccess <bool>] [- FolderName <string>] [-CommandLineSetting <CommandLineSettingValue> {DoNotAllow | Разрешить | Require}] [-RequiredCommandLine <string>] [-UserGroups <string[]>] [-IconPath <string>] [-IconIndex <string>] [-ConnectionBroker <string>] [<CommonParameters>]

В этом примере мы создаем RemoteApp для доставки WordPad. Мы используем следующую команду;

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

Опять же, во время создания RemoteApp нам предоставляется индикатор выполнения.

Изображение 26820
Рисунок 12:

Индикатор

Кроме того, когда создание завершено, команда выводит подробности создания.

Изображение 26821
Рисунок 13

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

Изображение 26822
Рисунок 14:

RemoteApps

Модуль RemoteDesktop также предоставляет командлеты для обновления приложений RemoteApp ( Set-RDRemoteApp ) и удаления приложений RemoteApp ( Remove-RDRemoteApp ).

Когда вы создаете новое приложение RemoteApp с помощью мастера графического интерфейса, он также отображает список доступных приложений, которые можно добавить. Эквивалентная команда PowerShell для этого действия — Get-RDavailableApp. Выполнение этой команды при указании посредника соединений и коллекции может привести к следующему выводу:

Изображение 26823
Рисунок 15

Выполнение действий на нескольких хостах

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

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

Изображение 26824
Рисунок 16

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

Вывод

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