AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme CreateProcess - Verwirrung bei Benutzerrechten
Thema durchsuchen
Ansicht
Themen-Optionen

CreateProcess - Verwirrung bei Benutzerrechten

Ein Thema von DeddyH · begonnen am 27. Okt 2011 · letzter Beitrag vom 27. Okt 2011
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#1

CreateProcess - Verwirrung bei Benutzerrechten

  Alt 27. Okt 2011, 14:51
Betriebssystem: Win XP,Win 7
I am confused
Wir haben hier folgendes Szenario: ein von uns betreutes Programm wird aus einer Server-Freigabe heraus gestartet. Für bestimmte Funktionen startet es dann von sich aus weitere Programme (mit CreateProcess, dessen bin ich mir sicher), die sich ebenfalls in der Freigabe befinden. Die Pfade der Programme werden aus der lokalen Registry ausgelesen. Kurzes Beispiel:
\\Server\Freigabe\Verz1\Programm1.exe ruft \\Server\Freigabe\Verz2\Programm2.exe auf

Bei einem Kunden hatten wir dann folgende Situation:
- XP-Clients melden "Zugriff verweigert", manueller Programmstart über den Windows-Explorer funktioniert hingegen
- Win7-Client startet ohne Probleme

ShellExecute und CreateProcess verhalten sich wohl unterschiedlich im Bezug auf (vererbte) Rechte, also scheint die UAC da bei Bedarf nachzuhelfen (habe das aber nur kurz in einem MSDN-Artikel überflogen). OK, das ist einigermaßen verständlich und konnte durch ein kleines Testprogramm bestätigt werden.
Nun wird es aber richtig verrückt: mappt man die Freigaben auf Laufwerksbuchstaben und passt die Pfade in der Registry entsprechend an (also z.B. Z: statt \\Server\Freigabe), dann zicken auch die XP-Clients nicht mehr. Es gibt bestimmt eine logische Erklärung dafür, leider fällt mir persönlich keine ein.
Kann mich mal jemand erhellen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: CreateProcess - Verwirrung bei Benutzerrechten

  Alt 27. Okt 2011, 16:25
Wenn das Programm unter einem anderem Benutzer gestartet wird und die Freigabe bei diesem Benutzer nicht vorhanden ist, dann geht das natürlich nicht.

Hab hier selber das Problem mit einem Subst-Laufwerk, welches erstmal immer nur für den aktuellen Benutzer eingerichtet wird.
Will man nun eine datei/Programm als Administrator starten, wird es plötzlich nicht mehr gefunden (es geht erst, wenn man das SUBST ebenfalls als Admin aufgerufen hat)

Ich bin mir grade nicht sicher, aber Eines von Beiden (CreateProcess oder ShellExecute) startet die Programme mit den Rechten und den Environmentvariablen des eingeloggten Benutzers und das Andere erbt diese Dinge vom Aufrufer.

Es gibt ja noch wiedere Varianten
CreateProcess
CreateProcessAsUser
CreateProcessWithLogonW
CreateProcessWithTokenW (die nötigen Token könntest du ja vom eigenen Prozess nehmen)

Damit kannst du dann sicherstellen, daß das andere Programm mit den richtigen Informationen gestartet wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: CreateProcess - Verwirrung bei Benutzerrechten

  Alt 27. Okt 2011, 16:33
Das ist ja nicht mein Programm, ich habe keinen Einfluss auf den Source. Außerdem ist das Problem an sich ja bereits behoben und der erste Teil geklärt. Was mich verwirrt: wieso geht es mit dem UNC-Pfad nicht, mit dem gemappten Laufwerk aber schon? Die Rechte sollten ja wohl dieselben sein, sonst wäre das ja ein dicker Hund.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: CreateProcess - Verwirrung bei Benutzerrechten

  Alt 27. Okt 2011, 16:42
Bei Win7 sind nunmal rechte nicht gleich rechte.

Selbst wenn du als Admin eingeloggt bist, werden die Programme (durch das UAC) erstmal mit eingeschränkten Rechten gestartet ... genau sowas kann auch passieren, wenn ein Programm ein Anderes startet.
Solange man also, beim Aufruf, nicht genau sagt, was man will, kann es sein, daß Windows es anders macht, als man erwartet hätte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: CreateProcess - Verwirrung bei Benutzerrechten

  Alt 27. Okt 2011, 16:46
Du solltest meinen Ausgangspost mal sorgfältig lesen: Win7 macht keine Probleme, sondern XP
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:19 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