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…
Umgebungsvariablen anderer Benutzer auflösen
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.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo droptix!droptix hat geschrieben:Wenn mein Python-Programm aber als Windows-Dienst läuft, hat man ja nur eingeschränkten Zugriff auf Umgebungsvariablen.
Du kannst deinen Dienst auch im Kontext eines Benutzers arbeiten lassen. Das kannst du im Dienstmanager einstellen.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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!
Ich denke, so wird das was. Danke!