Назад | Перейти на главную страницу

Можно ли развертывать и администрировать службы удаленных рабочих столов только с помощью PowerShell, без домена в WIndows Server 2012 и 2012 R2?

Windows Server 2008 R2 позволяет развертывать сервер терминалов (службы удаленных рабочих столов) без домена и без каких-либо требований к доменам. Это было очень полезно, особенно для автономных виртуальных или облачных развертываний сервера, который управляется удаленно для удаленного клиента, который не нуждается или не желает использовать какие-либо функции ActiveDirectory или Domain.

Это становится все труднее и труднее, поскольку Microsoft все больше и больше ограничивает свои технологии в каждом выпуске Windows. В Windows Server 2012 настройка лицензирования для служб удаленных рабочих столов сложнее, если не в домене, но все же возможно. В Windows Server 2012 R2 (по крайней мере, в предварительной версии) барьеры стали серьезными:

  1. Мастер добавления / удаления ролей и компонентов в Windows Server 2012 R2 имеет специальный режим развертывания RDS, в котором есть правило, согласно которому, если вы не находитесь в домене, развертывание невозможно. Он говорит вам сначала создать домен или присоединиться к нему. Это, конечно, прямо противоречит тому факту, что контроллер домена Active Directory не должен быть тем же самым компьютером, что и компьютер терминального сервера. Таким образом, технология Microsoft - это не столько облачная операционная система, сколько кластер нежелательных узлов, необходимый для поддержки одной машины, которую я действительно ХОЧУ развернуть. Это грубо, поэтому я пытаюсь найти обходной путь.

  2. Однако, если вы пропустите этот мастер и просто установите флажки в главном мастере ролей / функций, вы можете развернуть функции, но пользовательского интерфейса нет для их настройки, и когда вы вернетесь на страницу конфигурации RDS в мастере ролей , вы получите сообщение о том, что вы не можете администрировать свою систему служб удаленных рабочих столов, когда вы вошли в систему как администратор локального компьютера, потому что, хотя у вас есть все права администратора, которые вы могли бы иметь (в системе на основе рабочей группы), пользовательский интерфейс конфигурации RDS будет не принимать эти учетные данные и позволить вам продолжить.

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

Если бы все вышеперечисленное технически можно было сделать с разумным использованием PowerShell, я готов даже подумать о разработке всех сценариев PowerShell, которые мне понадобятся для выполнения вышеуказанного. Я не прошу кого-нибудь написать это за меня. Я спрашиваю, знает ли кто-нибудь, есть ли какие-либо технические препятствия для того, что я хочу сделать выше, помимо преднамеренного нарушения пользовательского интерфейса 2012 R2 для пользователей Workgroup? Будут ли все базовые технологии работать, если я буду управлять ими из сценария PowerShell?

Очевидно, что ответ из одного слова «да» или «нет» никому не пригодится, поэтому вопрос действительно таков: да или нет, и почему? Если ответ - да, то как?

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

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

Наконец-то мне удалось заставить его работать, по крайней мере, что-то вроде старых добрых служб терминалов, которые мы знали. Это работает для меня на двух производственных машинах небольших клиентов, которым требуется RDS, но которые не могут позволить себе иметь два сервера в своей сети.

Вот так:

  1. Установите службы лицензирования удаленного рабочего стола и роль узла сеансов удаленного рабочего стола, выполнив следующие действия:

    • Открыть диспетчер серверов
    • Нажмите «Управление» и выберите «Добавить роли и функции».
    • Выберите установку на основе ролей или функций.
    • В разделе «Службы удаленных рабочих столов» выберите «Лицензирование удаленных рабочих столов» и «Службы роли узла сеансов удаленных рабочих столов».
    • Продолжить установку
  2. Добавьте сервер лицензий в группу серверов лицензий сервера терминалов и перезапустите службу удаленного рабочего стола (можно использовать licmgr.exe)

  3. Добавьте лицензии на сервер лицензий.

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

    • Откройте PowerShell от имени администратора
    • Введите следующую команду в командной строке PS и нажмите Enter:

$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting

Выполните следующую команду, чтобы установить режим лицензирования (Примечание: значение = 2 для каждого устройства, значение = 4 для каждого пользователя, мы используем для каждого пользователя)

$obj.ChangeMode(4)

Выполните следующую команду, чтобы заменить имя машины на Сервер лицензий (mylicenseserver это имя вашего сервера):

$obj.SetSpecifiedLicenseServerList("mylicenseserver")

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

$obj.GetSpecifiedLicenseServerList()

Вы должны увидеть имя сервера в выводе.

После этого перезагрузите систему и войдите в систему с любым пользователем (если вы используете рабочую группу, вы знаете, что ваши пользователи должны быть частью Remote Desktop Users), и сообщение о пробном периоде исчезнет.

Источник всей этой неразберихи: http://support.microsoft.com/kb/2833839

Управление с Powershell

Есть несколько вещей, с которыми вы можете справиться Powershell. Чтобы увидеть команды, попробуйте:

import-module RemoteDesktop get-command -module RemoteDesktop

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

Уродливый способ

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

Чтобы сбросить счетчик, просто удалите этот раздел реестра:

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Grace Period

Конечно, для этого вам понадобятся дополнительные привилегии, выполнив regedit как администратор работать не будет. Попробуй это:

  • Получить PSEXEC
  • Запустите cmd от имени администратора
  • бегать psexec -s -i regedit.exe
  • удалить желаемый ключ
  • перезагрузка

Надеюсь, что-то из этого сработает для вас. Если у вас есть какие-то улучшения в работе с Powershell и RDS, дайте нам знать.

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

RDS в [Server 2012 и 2012 R2] требует, чтобы все его серверы были добавлены в домен. Это, по словам менеджера программ Microsoft из группы виртуализации удаленных рабочих столов, который написал связанную статью в блоге MSDN «Настройка нового развертывания служб удаленных рабочих столов с помощью Windows PowerShell».

Так что извините, что это не тот ответ, который вы хотели, но мне он кажется довольно авторитетным. Вы не можете делать то, что хотите, потому что Microsoft решила сделать членство в домене техническим требованием для серверов RDS в Server 2012 и 2012 R2.

Во время тестирования я обнаружил, что важно иметь хотя бы 1 NIC, настроенную с включенным IPv6. Это было необходимо в качестве обратной связи, чтобы сервер лицензий RDS разговаривал с самим собой, и он пытался разрешить это через IPv6 (как видно из Pings). У меня был отключен IPv6 на обоих сетевых адаптерах, и из-за этого сервер не возвращался должным образом.