AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Wie findet man den richtigen angemeldeten Windows Benutzer
Thema durchsuchen
Ansicht
Themen-Optionen

Wie findet man den richtigen angemeldeten Windows Benutzer

Offene Frage von "Zacherl"
Ein Thema von DavidKlimas · begonnen am 12. Mär 2017 · letzter Beitrag vom 13. Mär 2017
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

AW: Wie findet man den richtigen angemeldeten Windows Benutzer

  Alt 12. Mär 2017, 22:42
Und was bekommt man bei einer RemoteSitzung, wenn garkeiner vorm PC sitzt?
Man bekommt den Namen des Benutzerkontos mit dem man sich per RDP eingeloggt hat. Intern unterscheidet Windows gar nicht mehr großartig zwischen lokalem Login und einer Remote-Session. Session ist Session
Und wenn gleichzeitig ein Benutzer lokal und der zweite per RemoteSession angemeldet ist?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

AW: Wie findet man den richtigen angemeldeten Windows Benutzer

  Alt 12. Mär 2017, 23:10
Und was bekommt man bei einer RemoteSitzung, wenn garkeiner vorm PC sitzt?
Man bekommt den Namen des Benutzerkontos mit dem man sich per RDP eingeloggt hat. Intern unterscheidet Windows gar nicht mehr großartig zwischen lokalem Login und einer Remote-Session. Session ist Session
Und wenn gleichzeitig ein Benutzer lokal und der zweite per RemoteSession angemeldet ist?
Wie sich der Code (insbesondere das WTS_CURRENT_SESSION ) auf Server-Systemen mit mehreren aktiven Sessions verhält, weiß ich leider nicht. Hat jemand einen Windows Server am laufen, der das mal testen mag? Wenn man tatsächlich ausschließlich die lokale Session benötigt, dann gibt es aber auch per MSDN-Library durchsuchenWTSQuerySessionInformation eine Möglichkeit das zu prüfen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#13

AW: Wie findet man den richtigen angemeldeten Windows Benutzer

  Alt 12. Mär 2017, 23:40
Hab schnell einen Windows Server 2016 aufgesetzt und selbst getestet: Es wird tatsächlich immer die Session zurückgegeben, mit der man aktuell angemeldet (also die Session mit der ich das Testprogramm auch tatsächlich starte) ist. Dabei ist es sogar egal, ob ich das Programm per "Ausführen als .." unter einem anderen Benutzerkontext starte.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#14

AW: Wie findet man den richtigen angemeldeten Windows Benutzer

  Alt 13. Mär 2017, 00:24
Nja, aber dein Service, von dem vorhin auch noch geredet wurde, der wurde von meinem Benutzer gestartet.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

AW: Wie findet man den richtigen angemeldeten Windows Benutzer

  Alt 13. Mär 2017, 00:47
(also die Session mit der ich das Testprogramm auch tatsächlich starte)
Er will aber den lokal angemeldeten Benutzer und nicht den Benutzer der das Programm ausführt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#16

AW: Wie findet man den richtigen angemeldeten Windows Benutzer

  Alt 13. Mär 2017, 01:23
(also die Session mit der ich das Testprogramm auch tatsächlich starte)
Er will aber den lokal angemeldeten Benutzer und nicht den Benutzer der das Programm ausführt.
Genau das ermöglicht die Funktion. Ich glaube da haben wir uns missverstanden: Die Session unter der ich das Programm starte ist nicht gleichzusetzen mit den Benutzerkontext unter dem das Programm läuft.

Die Session ist fest an den Benutzeraccount gebunden, mit dem du dich einloggst (egal ob lokal oder remote). Sagen wir du loggst dich mit einem eingeschränkten Account "Luckie" ein und bekommst dabei die SessionId 1. Wenn du jetzt einen Prozess startest, läuft dieser standardmäßig auch unter Session 1 und bekommt zudem das Token deines eingeschränkten Accounts zugewiesen - Benutzerkontext wäre also ebenfalls "Luckie". Startest du den selben Prozess mit "Ausführen als" und wählst dort den Account "Admin", dann hat der Prozess zwar das Token vom "Admin" Account, aber dennoch wird es in Session 1 ausgeführt, weshalb die RDP API entsprechend wieder "Luckie" als "Besitzer" der Session ermitteln kann.

Nja, aber dein Service, von dem vorhin auch noch geredet wurde, der wurde von meinem Benutzer gestartet.
Seit Vista werden SYSTEM-Services aus Sicherheitsgründen in einer eigenen Session gestartet, welche komplett isoliert ist (Session 0 Isolation). Die Session-Id und das dazugehörige Token des aktuell angemeldeten Benutzers benötigte mein Service, um einen Prozess auf dem Desktop des Benutzers zu starten. Praktisch eine Emulation des "interaktiven Services" (nur dass der Prozess auch nicht im SYSTEM Kontext lief), welcher im Rahmen der Session 0 Isolation abgeschafft wurde.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)

Geändert von Zacherl (13. Mär 2017 um 01:37 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz