Rollout
Installation

Exceed Display Controller

Exceed auf Windows Terminal-Server

Sofware auf WTS

Normalerweise wird Software auf Windows Terminal-Server (kurz WTS) im sog. Install-Modus installiert. Dieser Modus sorgt dafür, dass anschließend aus Sicht der Software jede Session eine von anderen Usern abgeschirmte Umgebung sieht, dh. dass auch Registry-Einträge in HKEY_LOCAL_MACHINE und globale .ini-Dateien letztlich pro User ausgelegt werden und im laufenden Betrieb an die jeweilige gloabale Stelle (in der Registry oder im Dateisystem) eingeblendet werden. Somit können viele Sessions parallel betrieben werden, ohne dass sich diese gegenseitig beeihflussen.

Sonderfall Exceed

Eben dieses Verfahren ist aber für einen X-Server fatal. Man stelle sich vor: beim ersten Start des X-Servers auf WTS etabliert dieser ein X-Display mit der Display-ID ip-adresse:0.0 und gibt diese an diverse X-Clients weiter. In der nächsten User-Session würde - abgeschirmt von der ersten Session - wieder versucht werden, ein X-Display mit der ID ip-adresse:0.0 zu starten. Die IP-Adresse wäre die gleiche, nämlich die des Terminal-Servers. Damit sind die beiden X-Displays aus der Sicht der X-Clients nicht unterscheidbar. Außerdem käme es zu einem Konflikt um dern Port 6000, auf den beide X-Server-Instanzen versuchten, einen Listener zu platzieren. Auf Windows 2003 ist ein nicht-priveligierter Anwender zudem gar nicht berechtigt, Listener auf irgedwelche Ports zu setzen. Kurz gesagt, das normale Installationsverfahren auf WTS stößt mit einem X-Server auf große Schwierigkeiten.

Exceed muss deshalb unbedingt im sog. Run- oder Execute-Modus auf WTS installiert werden. Dann sorgt ein spezieller Dienst für die Verteilung unterschiedlicher Display-Nummern für jede Session sowie für die Etablierung der entsprechenden Listener auf die Ports 6000+n (n entspricht der Display-Nr.).
Man kann mit
change user /query
abfragen, in welchem Modus sich der Terminalserver befindet, bzw. mit
change user /execute
in den Execute-Modus schalten.
Installiert man Exceed zusätzlich nach Anwendung einer speziellen TRANSFORM-Datei (ExceedTSE.mst) so stehen darüber hinaus eine Reihe von WTS-spezifischen Features zur Verfüung, die über einen sog. User Manager verwaltet werden.
Auch Service Packs werden nach der Produkt-Installation oder auch zu einem späteren Zeitpunkt im Execute-Modus mit lokalen Admin-Rechten installiert.

Detaillierte Erläuterungen dazu können einem Whitepaper von Open Text Connectivity Solutions Group entnommen werden. Hier stehen PDF-Dateinen für einige Exceed-Versionen zum Sichten und Download bereit:

Tipps und Tricks:
Dreh- und Angelpunkt für das Funktionieren von Exceed ist die Per-User-Installation, die normalerweise bereits beim Login jedes Users abläuft. Verantworktlich ist das Programm
\Windows\System32\Hummingbird\Connectivity\usrsetup.exe.
Man kann dieses Programm auch jederzeit direkt aufrufen, allerdings unbedingt in diesem Pfad.
 
Das usrsetup.exe prüft zunächst, ob der Anwender überhaupt für die Exceed-Nutzung vorgesehen ist (dh. Mitglied der Gruppe Exceed12_User ist, falls eine solche Gruppe existiert). Wenn ja, wird geprüft, ob die Exceed User Files und die Exceed-Einträge in HKEY_CURRENT_USER vorhanden und aktuell sind; wenn nicht, so wird eine Per-User-Installation oder -Aktualisierung vorgenommen. Ist der User nicht (mehr) für die Exceed-Nutzung vorgesehen (dh. die Gruppe Exceed12_Users exisitert, aber der User ist nicht Mitglied) , so werden evtl. vorhandene User Files und Registry-Keys entfernt. Über diese Aktivitäten legt usrsetup.exe jedesmal eine oder mehrere Log-Datein (setup.log, usrsetup.log, hum*.log) im TEMP-Verzeichnis des Users an (also in seinem Profil unter \Lokale Einstellungen\Temp\).

Für den automatischen Aufruf ist ein Eintrag in der Registry verantwortlich, nämlich in HKLM\software\microsoft\windowsnt\currentversion\winlogon der Eintrag hummingbird\connectivity\usrsetup.exe.
Unter Umständen findet dieser automatische Aufruf zu früh statt, z.B. wenn eine Aktualisierung oder Umleitung des User-Profils noch nicht stattgefunden hat. Dann entfernt man hummingbird\connectivity\usrsetup.exe aus dem oben genannten Registry-Eintrag und führt usrsetup.exe in Eigenregie zu einem geeigneten Zeitpunkt aus.

Dies gilt insbesondere für "Published Applications" der Windows Terminal-Servers. Hier empfieht sich, vor dem Aufruf der veröffentlichten Exceed-Komponente (z.B. xstart.exe oder xsession.exe) explizit usersetup.exe aufzurufen, also letztlich eine kleines Skript zu veröffentlichen, dass die beiden Programme hintereinander aufruft.

Warnung: Für den erfolgreichen Ablauf des usrsetup.exe ist bei älteren Versionen erforderlich, dass die verwendete Installationsquelle von Exceed (also das MSI-Paket mit dem ExceedTSE-Transform) weiter für den Lesezugriff verfügbar ist. Für die aktuelle Version 14 ist dies nicht mehr erforderlich. Allerdings muss die Installationsquelle evtl. beim späteren Einspielen von Paches bzw. "ServicePacks" wieder verfügbar sein.
Rollout
     ©2005 - 2011 Andreas Gottwald
Exceed Display Controller