App Volumes 4.x – mehrere Betriebssysteme [ohne Support]

Update 23.03.2021: Mit Version 2103 hat diese Funktion wieder Einzug in das offizielle Produkt erhalten: https://docs.vmware.com/en/VMware-Horizon/2103/rn/horizon-2103-release-notes.html
In App Volumes 4.x ist die Möglichkeit entfallen einen AppStack mehreren Betriebssystemen zuzuweisen.
Während es in App Volumes 2.X noch möglich war in der GUI einen AppStack mehreren Betriebssystemen hinzuzufügen, so ist dies in der Version 4 verschwunden. Somit kann man eine Applikation nicht sowohl auf Windows 10 wie auch auf einem RDSH zur Verfügung stellen.
Man kann zwar die entsprechende Applikation zuweisen, sie wird am Zielsystem aber nicht gemountet.
Dies ist etwas unzufriedenstellend wenn man sowohl Windows 10 Desktops wie auch RDSHs betreibt.
Doch mit einem Trick kann man das Ziel dennoch erreichen:

Doch dazu muss man die Datenbank bearbeiten.
An dieser Stelle sei gesagt das es von VMware nicht unterstützt wird die Datenbank manuell zu bearbeiten, man dies auf eigene Verantwortung tut und GSS den Support verweigern kann, sollte es hierdurch zu Problemen kommen. Ich selbst stelle auch keine Unterstützung für diese Änderung bereits und weise ausdrücklich darauf hin das die hier beschriebene Änderung auf eigene Gefahr geschieht und nicht in produktiven Umgebungen eingesetzt werden sollte. Auch kann ich nicht garantieren das dies in jeder Umgebung funktioniert.
Insgesamt gibt es drei Tabellen in denen die validen Betriebssysteme gespeichert sind:
- app_package_operating_systems
- snapvol_operating_systems
- snapvol_app_bundle_operating_systems
Um dies zu erleichtern, habe ich ein SQL-Script entwickelt und als Stored Procedure gespeichert.
Man sollte immer, vor jeder Datenbankänderung, eine Sicherung dieser haben um im Fehlerfalle die Änderung rückgängig machen zu können.
Die Prozedur erwartet drei Parameter, wovon die ersten beiden gegenseitig austauschbar sind.
- app: Name der Applikation (wenn ID nicht bekannt)
- app_id: Die ID der Applikation (wenn bekannt)
- os: die ID des neuen Betriebssystemes
app_id wird automatisch aus dem Parameter
app gebildet, wenn die ID nicht angegeben wird.
Ist aber
app_id angegeben, wird der Parameter
app ignoriert.
Für die möglichen IDs für den Parameter
os muss ich etwas mehr angeben. Diese sind in der Tabelle
operating_systems gespeichert:
ID | Betriebssystem |
---|---|
1 | Windows 10 (x86) |
2 | Windows 10 (x64) |
3 | Windows 8.1 (x86) |
4 | Windows 8.1 (x64) |
5 | Windows 8 (x86) |
6 | Windows 8 (x64) |
7 | Windows 7 (x86) |
8 | Windows 7 (x64) |
9 | Windows Server 2012 R2 (x64) |
10 | Windows Server 2012 (x64) |
11 | Windows Server 2008 R2 (x64) |
12 | Windows Server 2008 (x86) |
13 | Windows Server 2008 (x64) |
14 | Windows Server 2016/2019 (x64 |
Zu beachten ist das meine Datenbank APPVOLS01 heißt und eventuell angepasst werden muss. Die Prozedur kann man entweder per SQL Management Studio ausführen oder z.B. über Powershell.
Eine Beispielimplementation habe ich ebenfalls in T-SQL:
Nun kann die Applikation auch an einem RDSH gemountet werden.