Einzelnen Beitrag anzeigen

Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: WNetENumResource -> Unterschiede auf Win7 und Win 8 / 8.1

  Alt 13. Nov 2013, 06:21
Ich muss meine vorherige Info leicht abändern - denn das Verhalten hat sich nicht mit Windows 8 geändert...
Das Verhalten gab es schon mit Windows Vista und auch mit Windows 7. Es dürfte also mehr Faktoren geben als nur dem Registry Key und eine aktivierte UAC wann es sich so verhält wie du es bereits von Windows 8/8.1 kennst!
Ich würde jedenfalls davon abraten dem ganzen einem Windows 8 Check o.ä. zu verpassen.
Hmm - sehe ich nicht so. Meine Testprogramm liefert eben unter Windows Vista und 7 mit WNetEnumResource von UserA immer die Netzlaufwerke - unabhängig ob er es normal oder priviligiert ausführt. Erst ab Windows 8 verändert sich das. Einen Unterschied beim priviligierten Prozess ist ja nur die Tatsache, dass das Netzlaufwerk "noch" nicht verbunden ist - im Explorer z.B. ein rotes Kreuz hätte. Aber es läßt sich auflisten.

Aus meiner Sicht arbeitet "WNetEnumResource" nach wie vor wie es sein soll (Es listet nämlich die Netzlaufwerke genauso auf wie es z.B.: ein TFileOpenDialog machen würde)
Hmm - sehe ich auch anders, da sich bei vermeintlich gleichen Verhalten von außen unterschiedliche Ergebnisse präsentieren (Windows 7 vs. 8 bei selben User der ein Programm jeweils mit und ohne Privilegien ausführt)

Anderes Szenario - gleiches Problem...
UserA ist kein Administrator, und er macht einen rechtsklick auf dein Programm -> "Als Administrator ausführen..." -> nun gibt er die Credentials von UserB (der Administrator ist) ein -> Das Programm startet mit den Rechten von UserB -> In dem Fall wirst du die Laufwerke von UserA ebenfalls nicht sehen - es sei denn du berücksichtigst exakt dieses Szenario.
Aus meiner Sicht völlig andere Problemstellung, da hier ein Programm in einem völlig anderen User-Kontext ausgeführt wird und nicht nur in einem anderem "Rechtekontext". Das UserB die Netzlaufwerke nicht sieht von UserA ist logisch und nachvollziehbar und schon viele Windowsversionen so. Es liegt hier keine unterschiedliches Verhalten einer API-Funktion vor wie bei meiner Ursprünglichen Fragestellung. (BTW: Userkonten sind meiner Meinung nach genau für diesen Fall da - unterschiedliche Einstellungen und Rechte - UserB muss/soll nicht sehen was UserA gemacht/eingestellt hat)

Unabhängig von dem Problem, wirst du noch in ganz andere Probleme mit UAC laufen wenn du nicht im vorhinein UAC-Aware programmierst.
Das wird zwar Offtopic, aber mich würde schon interessieren was du da so an Links im Angebot hättest zum nachlesen. Ich habe nämlichn ie wirklich darauf geachtet :-/ - also bewusst. Bisher bin ich auf keine Probleme gestoßen mit aktivierter UAC. Vielleicht mache ich aber auch zu wenig systemnahe Dinge in meinem Programmen.

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat