Seite 1 von 1

Umgebungsvariablen anderer Benutzer auflösen

Verfasst: Mittwoch 27. Februar 2008, 11:26
von droptix
Ich arbeite viel mit Pfaden und Umgebungsvariablen. Solange ich mein Programm als Benutzer aufrufe, ist das alles unproblematisch. Wenn mein Python-Programm aber als Windows-Dienst läuft, hat man ja nur eingeschränkten Zugriff auf Umgebungsvariablen.

Kann ich die lokalen Umgebungsvariablen eines anderen Benutzers auslesen? Was brauche ich dafür -> die lokale UserID oder den Benutzernamen? Bleiben wir bei dem Beispiel, dass mein Programm als Dienst und damit mit Admin- bzw. Systemrechten läuft…

Alternativ: Wie könnte man das bewerkstelligen? RunAs fällt mir da spontan unter Windows ein und natürlich sudo unter Linux, aber das muss ja nicht immer installiert sein. Ich suche also was 100%-ig verlässliches…

Verfasst: Mittwoch 27. Februar 2008, 11:50
von BlackJack
Umgebungsvariablen gelten nicht für Benutzer sondern für Prozesse. Und wenn man die einfach so von fremden Prozessen abfragen könnte, wäre das eine ziemlich böse Sicherheitslücke.

Re: Umgebungsvariablen anderer Benutzer auflösen

Verfasst: Mittwoch 27. Februar 2008, 12:01
von gerold
droptix hat geschrieben:Wenn mein Python-Programm aber als Windows-Dienst läuft, hat man ja nur eingeschränkten Zugriff auf Umgebungsvariablen.
Hallo droptix!

Du kannst deinen Dienst auch im Kontext eines Benutzers arbeiten lassen. Das kannst du im Dienstmanager einstellen.

mfg
Gerold
:-)

Verfasst: Mittwoch 27. Februar 2008, 13:27
von droptix
Ja ich weiß, aber der Dienst soll schon mit Systemrechten laufen, muss aber auch Benutzeranfragen bearbeiten. Dafür braucht der eben hin und wieder die Umgebungsvariablen des Benutzers. Der Benutzer kommuniziert ja über einen Client, der im Benutzerkontext ausgeführt wird. Eigentlich könnte der einfach "seine" Umgebungsvariablen an den Server schicken…

Ich denke, so wird das was. Danke!