Microsoft managed On-Premises Virtual Desktop

Heute ein Artikel der durch Zufall entstand: Der Microsoft managed On-Premises Virtual Desktop (MmOPVD :-)) aus der Terra Cloud. Ein Proof of Concept oder auch ein Hoppala, das funktioniert:

Was ist passiert? Im Rahmen von verschiedenen Tests zur Teams Optimierung per SlimCore / VDI2.0 sowie der Multimedia Redirection auf stinknormalen Terminalservern kam es zum kleinen Hoppala. Eigentlich wollte ich einen Windows Server 2025 als Azure VM bereitstellen und in einen Azure Virtual Desktop Hostpool registrieren. Nach einem Reboot habe ich mich dann blöderweise in eine falsche Test VM auf einem guten, alten Hyper-V Host verbunden und dort den Azure Virtual Desktop Agent sowie den Azure Virtual Desktop Agent Bootloader installiert. Was soll ich sagen? VM hat sich im Hostpool registriert und ich konnte mich verbinden. Das ich „falsch abgebogen“ bin, ist erst später aufgefallen.

Vorab als Info / „Disclaimer“: Ich gehe davon aus, dass das lizenzrechtlich / -technisch so nicht korrekt / legal zu betreiben ist! Theoretisch könnte im Fall von Remote Desktop Session Hosts eine RDS SAL oder eben RDS CAL (inkl. Software Assurance) genügen. Für Desktopbetriebssysteme würde wohl ein Windows 11 E3 / A3 / F3 oder ggfs. Microsoft 365 Business Premium nötig sein. Ebenfalls wird der hier beschriebene Weg sicherlich nicht seitens Microsoft supported sein. Wer es testen möchte, nur zu. Aber alles auf eigene Gefahr und ohne Gewähr. 🙂

Was ist zu tun (Deploy Azure Virtual Desktop | Microsoft Learn)?

  1. Hostpool (ohne VMs) in Azure erstellen
  2. Workspace in Azure erstellen
  3. Application Group in Azure erstellen
  4. Application Group dem Workspace hinzufügen
  5. Gruppen (oder einzelne Benutzer) zu Application Group zuweisen
  6. Windows Server 2025 oder 2022 (notfalls auch 2019) mit installierter Remote Desktop Session Host Rolle in der TERRA CLOUD oder dem eigenen Datacenter parat haben oder bereitstellen
    Folgende Punkte bieten sich an bzw. sind von Vorteil:
    • Installiert und konfigurierte FSLogix Profile
    • Office Paket samt M365 Diensten (Microsoft 365 Business Premium oder Microsofot 365 E3 / Office 365 E3 inkl. Teams)
    • Die Azure Virtual Desktop Multimediaumleitung
    • (Installierte Teams WebRTC Optimierung)

Hier die ersten fünf Akte in PowerShell auf dem Weg zum Microsoft managed On-Premises Virtual Desktop (MmOPVD):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Ggfs. die Azure PowerShell Module installieren
Install-Module -Name Az
 
Import-Module Az.Accounts
Connect-AzAccount
# Passende Subscription muss ausgewählt werden sofern keine Default Subscription gesetzt ist
# (Update-AzConfig -DefaultSubscriptionForLogin <Subscription Id>)
 
# Deklaration der benötigten Variablen
$AzRG = "rg-janmischoIT" # Azure Resource Group
$AzLoc = "West Europe" # Azure Location
$AVDUGroup = "AVDUser" # Gruppe mit den Benutzerkonten
 
$newAzHP New-AzWvdHostPool -Name "hp TCH RDS" `
    -Description "TERRA CLOUD Remote Desktop Hostpool" `
    -FriendlyName "TERRA CLOUD Remote Desktop Hostpool" `
    -ResourceGroupName $AzRG `
    -Location $AzLoc `
    -HostPoolType Pooled `
    -LoadBalancerType BreadthFirst `
    -PreferredAppGroupType Desktop `
    -MaxSessionLimit 100
 
$newAzWSP = New-AzWvdWorkspace -Name "ws TCH RDS" `
    -Description "TERRA CLOUD Remote Desktop Workspace" `
    -FriendlyName "TERRA CLOUD Remote Desktop Workspace" `
    -ResourceGroupName $AzRG `
    -Location $AzLoc
 
$newAzAG = New-AzWvdApplicationGroup -Name "dag TCH Desktops" `
    -Description "TERRA CLOUD Remote Desktop Application Group" `
    -FriendlyName "TERRA CLOUD Remote Desktop Application Group" `
    -ResourceGroupName $AzRG `
    -Location $AzLoc `
    -ApplicationGroupType Desktop `
    -HostPoolArmPath $newAzHP.Id
 
Update-AzWvdWorkspace -Name $newAzWSP.Name `
    -ResourceGroupName $AzRG `
    -ApplicationGroupReference $newAzAG.Id
 
$AzGroupId = Get-AzADGroup -DisplayName $AVDUGroup
New-AzRoleAssignment -ResourceName $newAzAG.Name `
    -ObjectId $AzGroupId.Id `
    -ResourceGroupName $AzRG `
    -RoleDefinitionName "Desktop Virtualization User" `
    -ResourceType "Microsoft.DesktopVirtualization/applicationGroups"

Im sechsten Schritt benötigen wir idealerweise eine (oder n+1) fertige und möglichst aktuelle Windows Server VM(s) mit installierter Remote Desktop Session Host Rolle. Zusätzlich gibt es bereits ein lokales Active Directory samt Grundkonfiguration für ein „Terminalserverszenario“ (siehe oben Punkt 6). Die benötigte Infrastruktur für Domain Controller, Fileserver für die FSLogix Profile und Co. lässt sich – schau an, wer hätte es geahnt – ebenfalls perfekt in der TERRA CLOUD bereitstellen. 😉 Damit die Remote Desktop Session Hosts sich später im Hostpool registrieren können, benötigen wir ein entsprechendes Token. Im noch geöffneten Terminal geht es dann folgendermaßen weiter:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ExpTime = $((Get-Date).ToUniversalTime().AddHours(24).ToString('yyyy-MM-ddTHH:mm:ss.fffffffZ'))
$newAzRegInfo = New-AzWvdRegistrationInfo -HostPoolName $newAzHP.Name `
    -ResourceGroupName $AzRG `
    -ExpirationTime $ExpTime
 
$newAzRegInfo.Token
# Um das Token möglichst charmant auf die Session Hosts zu bekommen, kopieren wir es mit dem magischen "clip"
# Command direkt in die Zwischenablage und können es auf den Sessions Hosts per STRG + V einfügen. <img draggable="false" role="img" class="emoji" alt="🤩" src="https://s.w.org/images/core/emoji/15.0.3/svg/1f929.svg">
$newAzRegInfo.Token |
    clip
 
# Verbindung zum Azure Account beenden
Disconnect-AzAccount

An dieser Stelle sind die Vorbereitungen in Azure erledigt und wir können uns dem oder den Session Host(s) widmen. Hier genügt es die beiden benötigten Agents bei Microsoft herunterzuladen und entsprechend zu installieren. Dabei natürlich das korrekte und gültige Registrierungstoken verwenden.

  1. Azure Virtual Desktop Agent: https://go.microsoft.com/fwlink/?linkid=2310011
  2. Azure Virtual Desktop Agent Bootloader: https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RWrxrH
1
2
msiexec.exe /i Microsoft.RDInfra.RDAgent.Installer-x64-1.0.10673.700.msi /quiet REGISTRATIONTOKEN=<Token>
msiexec.exe /i Microsoft.RDInfra.RDAgentBootLoader.Installer-x64-1.0.8925.0.msi /quiet

Im Anschluss an die Installation der Agents, sollte geprüft werden, ob die benötigten Komponenten (Remote Desktop Agent Boot Loader, Remote Desktop Services Infrastructure Agent, Remote Desktop Services Geneva Agent, Remote Desktop Services SxS Network Stack) im Hintergrund bereitgestellt wurden und ebenfalls, ob die Remote Desktop Session Hosts im erstellten Hostpool aufgetaucht sind. Ist das der Fall, sollten die Session Hosts einmal durchgebootet werden, bevor man sich mit der Windows App oder dem Remote Desktop Client zum Workspace verbinden, um in den „Microsoft managed On-Premises Virtual Desktop (MmOPVD)“ Genuss zu kommen.

Konfiguration der Windows App: Ein Bildband in Worten 🙃

Et voilà:

  • Die verbundene Remote Desktop Session
  • Teams per Slimcore / VDI2 optimiert inkl. MsTeamsVdi.exe auf dem lokalen Client
  • Multimediaumleitung in Action auf Youtube mit einem Video vom terraXaler (-> relaX 😍)
  • Die Verbindungsinformationen aus Xanten zur Azure Front Door in „West Europe“ durch den Gateway Service inkl. Broker Service in die TERRA CLOUD nach Hüllhorst

In einer der nächsten Mäuse 🐭: Anmeldung per Entra Id Single Sign On in Verbindung mit Cloud Kerberos trust!


Die gesuchte Lösung noch nicht gefunden oder benötigen Sie Hilfe bei anderen Themen aus meinem Blog? Nehmen Sie gerne Kontakt mit mir bzw. meinem Unternehmen Jan Mischo IT auf. Ich freue mich auf Ihre Anfrage: https://janmischo.it/kontakt/


+49 2801 7004300

info@janmischo.it


Beitrag veröffentlicht

in

, ,

von

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..