melodoi
Goto Top

Umgebungsvariablen des lokalen Clienten aus einer Terminal-Session herraus abfragen

%systemroot% des Cleints aus einer Terminal-Session herraus . Das wissen nur richtige Admins face-wink. Ich nicht!

Hi,

Auf einem Client 'C' läuft eine Terminal-Session 'S'. Über \\tsclient\c kann ich auf den lokalen Client 'C' zugreifen. Auf diesem Client 'C' ist auch eine Applikation 'A' installiert, die nicht Terminal-Server-tauglich ist face-sad. Nun muss ich auf Daten der Application 'A' aus der Terminalsession 'S' herraus zugreifen können. Da ich nicht weiß, wo die Daten der Application 'A' auf 'C' liegen, ich aber weiß dass auf %systemroot% von 'C' eine ini-Datei liegt, die mir das verrät, brauche ich Zugriff auf die %systemroot% von 'C'. Wie also, nach dieser Beschreibung für 5-jährige face-smile, kann ich auf %systemroot% von 'C' von 'S' aus zugreifen?

Danke Sylvio

Content-Key: 166995

Url: https://administrator.de/contentid/166995

Printed on: April 18, 2024 at 23:04 o'clock

Member: Hubert.N
Hubert.N May 26, 2011 at 15:51:25 (UTC)
Goto Top
Moin

Ich bezweifle ja mal ganz ehrlich, dass ich die ganzen A, C, S verstanden habe und mir nich alles wie ein X vorkommt...

Was ich aber ganz sicher nicht verstehe ist, was der Inhalt der Variable %systemroot% bringen soll. Da wird (wenn ich vion Windows als Basis ausgehe) seit Windows XP immer C:\WINDOWS herauskommen. Und übers Netz kommst du mit der Ausgabe auch nicht an die Daten ran. Dazu benötigst du eine Freigabe und das Windows-Verzeichnis ist bekanntermaßen für administrative Zugriffe als admin$ freigegeben

Den Namen des Clientrechners kannst du lokal auf dem Terminalserver über %clientname% abfragen.

Gruß

Hubert
Member: melodoi
melodoi May 26, 2011 at 16:10:24 (UTC)
Goto Top
Hi Hubert,

Ich wollte es extraeinfach schreiben. Ging wohl nach hinten los face-wink. Schuldigung.

Ich brauche dass nicht mal auf einen Rechen, sondern für viele Clienten. Bei mir z.B. heißt mein %systemroot% "C:\Windows.1". Ich kenne auch einige mit einem Dualboot-System, bei dem es noch furchbarer lautet. Ich kann es also nicht sicher wissen. Eine Netzfreibabe will der Sicherheitsbeauftragte nicht haben, weil das, wie gesagt, viel Cients betrifft und auch aufwendig zu verwalten ist. Man bräuchte u.U. auch wieder Anmeldedaten, was ich vermeiden will und über \\TSClient\... ist das ja auch super bequem.

Die Umgebungsvariable %CLIENTNAME% habe ich schon gesehen. Ich wünsche mir aber so was wie %HOSTSYSTEMROOT%.

LG Sylvio
Member: Hubert.N
Hubert.N May 26, 2011 at 16:15:40 (UTC)
Goto Top
Aber egal ob Windows oder Windows.1 - du willst vom Terminalserver aus auf den Client zugreifen. Ohne Freigabe geht das nicht. Da nützt dir der lokale Pfad herzlich wenig.

Gruß
Member: melodoi
melodoi May 26, 2011 at 16:26:45 (UTC)
Goto Top
Das geht doch mit "\\TSCLIET\C\..." obersuper! Das muss nur in den Einstellungen zur Terminal-Session aktiviert werden (siehe lokale Resourcen und Weitere). Dann kannst die Laufwerke sogar auf deinem Arbeitsplatz sehen (C von Huber, D von Huber,..., wenn dein PC Huber heißt). Wenn ich nur dieses %systemroot% des Hostes raus kriegen könnte, wäre ich schon fertig, weil dann nur "C:\ gegen "\\TSCLIENT\C\" austauschen müsste. Pobier das mal bitte bei dir!
Member: Hubert.N
Hubert.N May 26, 2011 at 16:32:33 (UTC)
Goto Top
ja klar - Zugriff auf lokale Ressourcen aktiviert.... Habe ich gerade nicht dran gedacht...

Solche Probleme finde ich ja klasse...

Mal ne "blöde Idee": Kannst du nicht beim hochfahren des Rechners die Variable an einem Ort sichern, den du sicher kennst. Also irgendwas in der Art wie echo %systemtoot% > c:\root.txt ?
Member: melodoi
melodoi May 26, 2011 at 16:41:41 (UTC)
Goto Top
Ja, daran hatte ich auch schon gedacht. Die könnte man ja dann mit \\tsclient\c\root.txt lesen. Ich hoffte nur, dass es einfache gehen würde.

Potentielle Probleme:
Auf root von C kann man nicht schreiben (Win 7)
Die Batch-Datei mit "echo %systemtoot% > c:\root.txt" wurde nicht ausgeführt.

Ich hab so ungefähr 250 solcher Clienten in 30 verschiedenen Firmen laufen. Da ist jeder anders gestrickt. Da kann alles mögliche passieren und ich muss das supporten.

Das muss doch einfacher gehen face-sad.
Member: Hubert.N
Hubert.N May 26, 2011 at 16:54:52 (UTC)
Goto Top
Zitat von @melodoi:
Auf root von C kann man nicht schreiben (Win 7)

Wenn du es als Computerrichlinie ausführst, dann sollte das mit Systemrechten doch möglich sein. Und kompliziert finde ich eine Richtlinie auch nicht zu implementieren.
Member: melodoi
melodoi May 26, 2011 at 17:00:59 (UTC)
Goto Top
Ich schlafe mal drüber face-smile Evtl. fällt mir noch was ein oder jemand hat noch eine Idee....

Vielen Dank Hubert!!!
Mitglied: 60730
60730 May 26, 2011 at 17:42:33 (UTC)
Goto Top
Moin,
Zitat von @melodoi:
Hi,

Auf einem Client 'C' läuft eine Terminal-Session 'S'. Über \\tsclient\c kann ich auf den lokalen
Client 'C' zugreifen. Auf diesem Client 'C' ist auch eine Applikation 'A' installiert, die nicht
Terminal-Server-tauglich ist face-sad.
  • Die einzige Software - die ich kenne und die nicht TS tauglich ist - ist Software, bei der der Urheber explizit eine andere Lizens für die TS Benutzung haben will.
  • Woher weißt du also, dass es so ist und nicht so, wie ich es beschreibe?
  • Ist die Software auch Terminalservermäßig installiert worden?
Wie also, nach dieser Beschreibung für 5-jährige face-smile, kann ich auf %systemroot% von 'C' von 'S' aus zugreifen?
  • Mea Culpa - du kommst 38 Jahre zu spät - oder 3 jahre zu früh...
Bei mir z.B. heißt mein %systemroot% "C:\Windows.1". Ich kenne auch einige mit einem Dualboot-System, bei dem es noch furchbarer lautet.
  • Aber %systemroot% ist doch immer %systemroot% - Jacke wie Hose, wie der Pfad wirklich benamst ist

Zitat von @Hubert.N:
Also irgendwas in der Art wie echo %systemtoot% > c:\root.txt ?
  • systemzahn?
echo %systemroot%>%appdata%\rootpfad.txt

Danke Sylvio

ja nee - ich vermute - du fängst nach dem erfolgreichen schlafen nochmal ganz von vorne an.
Sonst kommen wir direkt von A,b;c nach xyz ungelöst...
Member: melodoi
melodoi May 27, 2011 at 07:21:29 (UTC)
Goto Top
Moin Timo,

du hast dir ja eine Menge Mühe gegeben meinen Beitrag zu analysieren. Hast du auch eine Idee zu dessen Lösung? Es ist schon richtig die Ursachen zu bekämpfen (Software sollte auf Terminal-Server laufen), ist aber genau das Problem. Die Software lief sogar mal auf dem Terminal-Server, wurde aber extra vom Hersteller so verändert, dass sie nicht mehr läuft, da sein Lizenzmodell dadurch umgangen werden konnte und er das verständlicherweise nicht wollte.

Viellicht nimmst du die Aufgabe mal wohlwollend und sportlich an (BITTE): Wie ermittelt man %systemroot% des Host aus der Terminal-Session heraus?

LG Sylvio
Mitglied: 60730
60730 May 27, 2011 at 20:19:03 (UTC)
Goto Top
Salut,
Zitat von @melodoi:
Moin Timo,

du hast dir ja eine Menge Mühe gegeben meinen Beitrag zu analysieren. Hast du auch eine Idee zu dessen Lösung?
ja nee - ich vermute - du fängst nach dem erfolgreichen schlafen nochmal ganz von vorne an.
Sonst kommen wir direkt von A,b;c nach xyz ungelöst...
ich versuchs trotzdem...
angenommen...
ich möchte eine bestimmte Umgebungsvariable auslesen und es soll auf keinen Fall "leicht" sein.. face-wink
  • Es handelt sich um eine Domain, mit funktionierender Namensauslösung
  • Ich kann sicher sein, dass kein User sich zuerst an System A anmeldet und auf System B die Session übernimmt.. (%clientname% also passt)
  • Die Registry nicht verfummelt ist

reg copy "\\%clientname%\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"  HKCU\Software\!test /f  
for /f "skip=2 tokens=3" %%a in ('reg query hkcu\software\!test\ /v Systemroot') do echo set voila=%%a  
pause
btw:
Viellicht nimmst du die Aufgabe mal wohlwollend und sportlich an (BITTE): Wie ermittelt man %systemroot% des Host aus der Terminal-Session heraus?
  • Wenn du mit Sportlich den Hürdenlauf meinst.... und die erste Hürde %clientname% statt %tsclient% gewesen wäre...

Gruß