Clientname in Terminalsitzung
Windows Server 2008
Windows XP und Windows 7 Home und Pro über aktuellen RDP
In einem Startscript auf dem Terminal Server sollen anhand des PC Namens (Clientname) unterschiedliche Aktionen erfolgen.
Das Programm funktionierte zunächst einwandfrei, später kamen aber Fehlermeldungen von Benutzern.
Ich mußte dann feststellen, daß zum Zeitpunkt der Programmausführung der Clientname noch nicht gesetzt war.
Lösung:
Ich starte jetzt das eigentliche Script über eine Batch-Datei mit START. Dadurch wird eine neue CMD gestartet und der Clientname ist seitdem immer vorhanden gewesen.
Beim Testen ist mir noch folgendes aufgefallen:
Wenn ich im Terminal eine CMD starte, ist die Variable %Clientname% gesetzt; sollte ich die CMD aber als Administrator starten, gibt es die Variable nicht.
Vielleicht hilft das ja dem einen und anderen.
Robert
Windows XP und Windows 7 Home und Pro über aktuellen RDP
In einem Startscript auf dem Terminal Server sollen anhand des PC Namens (Clientname) unterschiedliche Aktionen erfolgen.
Das Programm funktionierte zunächst einwandfrei, später kamen aber Fehlermeldungen von Benutzern.
Ich mußte dann feststellen, daß zum Zeitpunkt der Programmausführung der Clientname noch nicht gesetzt war.
Lösung:
Ich starte jetzt das eigentliche Script über eine Batch-Datei mit START. Dadurch wird eine neue CMD gestartet und der Clientname ist seitdem immer vorhanden gewesen.
Beim Testen ist mir noch folgendes aufgefallen:
Wenn ich im Terminal eine CMD starte, ist die Variable %Clientname% gesetzt; sollte ich die CMD aber als Administrator starten, gibt es die Variable nicht.
Vielleicht hilft das ja dem einen und anderen.
Robert
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 218093
Url: https://administrator.de/contentid/218093
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
10 Kommentare
Neuester Kommentar
Du meinst ein Logonskript, oder? Ja, in einem Logonskript ist der %clientname% nicht verfügbar, da dieses Skript die Umgebung seines Parents erbt... Entweder wie Du geschrieben hast mittels neuem Prozess oder durch direktes Suchen in der Registrierung (HKCU\Volatile Environment\<Session-Nummer>: "Clientname")
mfg Martin
mfg Martin
Das ist ein altes Timing-Problem, mit welchem wir auch schon seit Jahren kämpfen.
1. "sollte ich die CMD aber als Administrator starten, gibt es die Variable nicht": Glaube ich nicht. Könnte es sein, dass Du als Administrator das dann lokal machst, also nicht über RDP oder ICA? Weil: Die Variable CLIENTNAME wird nur gesetzt, wen man über die Terminaldienste kommt.
2. Es gibt beim Loginprozess mehrere Phasen, ohne dass ich Dir diese jetzt benennen könnte. z.B. scheint es unmittelbar vor dem Anzeigen des Desktops oder der veröffentlichten Anwendung nochmal ein "reset" zu geben, welches die Umgebungsvariablen noch mal lädt, bzw. die letzten abschließend setzt. Da könnte dann auch die CLIENTNAME dabei sein.
3. Rein vom Timing her hat sich bei uns als am sichersten herausgestellt, die Scripte über den HKLM-Run-Schlüssel in der Registry zu starten. Denn bedenke: Autostart aus dem Startmenü wird nur beim Starten eines Desktops ausgeführt, nicht bei einer veröffentlichen Anwendung ohne Desktop. Seit dem wir das über "Run" machen, haben wir fast keine Timing-Probleme mehr.
mfg
Emeriks
1. "sollte ich die CMD aber als Administrator starten, gibt es die Variable nicht": Glaube ich nicht. Könnte es sein, dass Du als Administrator das dann lokal machst, also nicht über RDP oder ICA? Weil: Die Variable CLIENTNAME wird nur gesetzt, wen man über die Terminaldienste kommt.
2. Es gibt beim Loginprozess mehrere Phasen, ohne dass ich Dir diese jetzt benennen könnte. z.B. scheint es unmittelbar vor dem Anzeigen des Desktops oder der veröffentlichten Anwendung nochmal ein "reset" zu geben, welches die Umgebungsvariablen noch mal lädt, bzw. die letzten abschließend setzt. Da könnte dann auch die CLIENTNAME dabei sein.
3. Rein vom Timing her hat sich bei uns als am sichersten herausgestellt, die Scripte über den HKLM-Run-Schlüssel in der Registry zu starten. Denn bedenke: Autostart aus dem Startmenü wird nur beim Starten eines Desktops ausgeführt, nicht bei einer veröffentlichen Anwendung ohne Desktop. Seit dem wir das über "Run" machen, haben wir fast keine Timing-Probleme mehr.
mfg
Emeriks
Hallo Robert,
Zu 1)
OK. Dann bin ich aber auch am Ende.
Mit "Administrator cmd.exe" meinst Du sicherlich, wenn Du "cmd.exe" "als Administrator ausführst".
Das habe ich gerade mal bei mir getestet: Und in beiden Instanzen, ob als Admin oder nicht, sind alle Variablen vorhanden.
Läuft mit dem von Dir verwendeten Admin-Konto möglicherweise ein Dienst, oder ein Scheduled Task, welcher ständig im Hintergrund läuft?
Zu 1)
OK. Dann bin ich aber auch am Ende.
Mit "Administrator cmd.exe" meinst Du sicherlich, wenn Du "cmd.exe" "als Administrator ausführst".
Das habe ich gerade mal bei mir getestet: Und in beiden Instanzen, ob als Admin oder nicht, sind alle Variablen vorhanden.
Läuft mit dem von Dir verwendeten Admin-Konto möglicherweise ein Dienst, oder ein Scheduled Task, welcher ständig im Hintergrund läuft?