Benutzer mit den meisten Antworten
Terminals, Clientname, ThinClient

Frage
-
moin,
wir benötigen die echten Clientnamen wenn man sich von einem WYSE Terminal auf einen Windows Termins Server verbindet.
leider liefert die Variable CLIENTNAME nicht den korrekten Namen.
$client = $env:CLIENTNAME
hat jemand eine einfacherer Lösung in Powershell dafü. Vielleicht gibt es doch diese Variable.
unter DOS hatten wir es so gelöst. Zur Not muss ich sonst das nachbauen
for /f "tokens=1-3" %%1 in ('query session %USERNAME% ^| find ">"') do set ses_num=%%3
for /f "tokens=1-3" %%1 in ('reg query "HKCU\Volatile Environment\%ses_num%" /v CLIENTNAME') do set client_name=%%3echo %TIME% %USERNAME% on %COMPUTERNAME% from %client_name%>> \\server\share\Lizenz\%USERNAME%.txt
Chris
- Bearbeitet -- Chris -- Montag, 3. Februar 2020 06:42
Antworten
-
Moin,
wenn "einfach" für Dich die Einbindung eines 3rd-Party-Moduls zulässt, möchte ich auf dieses alte Projekt von mir verweisen. Es gibt bald ein Update, aber vorerst nur mit korrekter Ausgabe der RDP-Protokollversion beim 10er Kernel. Insofern müsste für Deinen Zweck auch die jetzige Version reichen.
Aus Interesse: und was steht in der normalen %CLIENTNAME%?
Evgenij Smirnov
- Als Antwort markiert -- Chris -- Montag, 3. Februar 2020 07:04
-
Hast Du das schon probiert?
(Get-ItemProperty -Path 'HKCU:\Volatile Environment\*' -Name ClientName).ClientName
Live long and prosper!
(79,108,97,102|%{[char]$_})-join''
- Als Antwort markiert -- Chris -- Montag, 3. Februar 2020 12:31
-
Mich hätte interessiert wie man auf den Wert mittels Powershell kommt. Der Schlüssel unter Volatile ist ja unterschiedlich und nie gleich?
Der Subkey unter Volatile Environment ist die Session ID. Aus der leitet sich dann ggf. auch ein sitzungsspezifisches %TEMP% ab. Zu finden als Eigenschaft von Win32_Process - da mußt nur einen Prozess finden, der in Deiner aktuellen Session läuft :-) Ich hatte das seinerzeit so gelöst:
myQuery = "SELECT SessionID,Name FROM Win32_Process WHERE ExecutablePath=""" & Replace( WScript.Fullname, "\", "\\" ) & """"
Suche nach einem Prozess, in Dem dein aktuelles Skript läuft. Wenn UAC an ist und Du nicht als Admin läufst, siehst Du keine Prozesse anderer Benutzer - damit war das recht safe für mich.
Geht natürlich auch mit "query session %username%" - das läuft halt auf Textmassage raus.
Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq
- Als Antwort markiert -- Chris -- Montag, 3. Februar 2020 13:59
Alle Antworten
-
Moin,
wenn "einfach" für Dich die Einbindung eines 3rd-Party-Moduls zulässt, möchte ich auf dieses alte Projekt von mir verweisen. Es gibt bald ein Update, aber vorerst nur mit korrekter Ausgabe der RDP-Protokollversion beim 10er Kernel. Insofern müsste für Deinen Zweck auch die jetzige Version reichen.
Aus Interesse: und was steht in der normalen %CLIENTNAME%?
Evgenij Smirnov
- Als Antwort markiert -- Chris -- Montag, 3. Februar 2020 07:04
-
Hast Du das schon probiert?
(Get-ItemProperty -Path 'HKCU:\Volatile Environment\*' -Name ClientName).ClientName
Live long and prosper!
(79,108,97,102|%{[char]$_})-join''
- Als Antwort markiert -- Chris -- Montag, 3. Februar 2020 12:31
-
Mich hätte interessiert wie man auf den Wert mittels Powershell kommt. Der Schlüssel unter Volatile ist ja unterschiedlich und nie gleich?
Der Subkey unter Volatile Environment ist die Session ID. Aus der leitet sich dann ggf. auch ein sitzungsspezifisches %TEMP% ab. Zu finden als Eigenschaft von Win32_Process - da mußt nur einen Prozess finden, der in Deiner aktuellen Session läuft :-) Ich hatte das seinerzeit so gelöst:
myQuery = "SELECT SessionID,Name FROM Win32_Process WHERE ExecutablePath=""" & Replace( WScript.Fullname, "\", "\\" ) & """"
Suche nach einem Prozess, in Dem dein aktuelles Skript läuft. Wenn UAC an ist und Du nicht als Admin läufst, siehst Du keine Prozesse anderer Benutzer - damit war das recht safe für mich.
Geht natürlich auch mit "query session %username%" - das läuft halt auf Textmassage raus.
Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq
- Als Antwort markiert -- Chris -- Montag, 3. Februar 2020 13:59
-
ich habe jetzt ein paar Stichproben gemacht und keine zwei Einträge gefunden. Scheinbar kümmert sich Windows darum, dass hier die aktuelle Session in der Registry drinnen steht.
dann würdeder Trick von Olaf
(Get-ItemProperty -Path 'HKCU:\Volatile Environment\*' -Name ClientName).ClientName
reichen.
Chris
-
Ja, in der Regel reicht das. Die meisten haben ja nicht mehrere Sessions auf dem gleichen Terminal Server offen :-)
Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq