#RequireAdmin & Windows 10

  • Moin,

    ich hab mir ein GUI mit Drag&Drop-Feld für Ordnerpfade gebaut.

    Das ganze soll für Netzwerkfreigaben sein, allerdings scheint man "#RequireAdmin" zu benötigen, nur dann funktioniert das Drag&Drop nicht mehr.

    Hat hier vielleicht jemand eine Lösung?

    P.S.: Windows 10 = Testserver in der Firma, nicht verwechseln mit meinem Problem zuhause und Win7 ;)

    Danke & Gruß,

    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

    • Offizieller Beitrag

    Das Problem ist, dass beide Umgebungen in verschiedenen User-Kontexten laufen. Wenn das Programm als Admin läuft, aber die Netzwerkfreigabe nicht mit Admin-Rechten geöffnet wurde, geht kein Drag&Drop. Beides muss also im gleichen Kontext sein, dann klappt das auch.

  • Habe mir ein Workaround gebaut, es ist zwar nicht optimal funktioniert aber erstmal ganz gut:

    Hotkey gesetzt mit folgendem Code:

    - Programm starten

    - Ordner markieren

    - Hotkey drücken

    - Ordner wird ins Clipboard geladen

    - Pfad wird in der Zeile ausgegeben

    - was im Clipboard stand, wird wieder eingefügt

    Wie gesagt, nicht optimal, aber immerhin eine Lösung.

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • Das Problem ist, dass beide Umgebungen in verschiedenen User-Kontexten laufen. Wenn das Programm als Admin läuft, aber die Netzwerkfreigabe nicht mit Admin-Rechten geöffnet wurde, geht kein Drag&Drop. Beides muss also im gleichen Kontext sein, dann klappt das auch.

    Ich hatte mal das selbe Problem, ohne verschiedene Privilegien. Dazu hatte ich sogar mal ein Ticket erstellt aber das wurde geschlossen weil der Code fehlerhaft war, auch wenn ich zig Drag&Drop-Skripte probiert habe.

    Unter Win7 gings ohne Probleme.

    x0r wie schaut denn dein Skript aus mit dem du das reproduzieren kannst?

  • alpines zum testen hab ich kurz was zusammengebastelt, erfüllt quasi den selben zweck (drag&drop):

    mit #RequireAdmin passiert nix beim Ordner reinziehen, ohne klappts...

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • Versuche es mal hiermit:

  • Naja wie schon gesagt wurde ist W10 "sicherer" und lässt nicht mehr zu, dass bestimmte WindowMessages (hier Drag&Drop) von nieder Privilegierten Benutzerkontexten an höher Privilegierten gesendet werden.

    Das konnte man nämlich ausnutzen um ohne Adminrechte Code im Administratorkontext auszuführen, sofern ein entsprechendes Fenster existent war.

    Dein Desktop und Explorer Fenster läuft normalerweise im Kontext deines Benutzeraccount mit normalen Privilegien, daher funktioniert Drag&Drop auch nicht mit GUI's im Adminkontext.

    Anstatt das Verhalten zu umgehen oder gar eine Explorer Instanz mit erhöhten Privilegien zu starten sollte man eher modular und sorgsam mit hohen Privilegien umgehen. Erreichen kann man das z.B. durch Trennung der Prozesse für GUI und "Worker". In der Regel benötigt nämlich nur der Worker höhere Privilegien.

    Durch getrennte Prozesse von GUI und dem eigentlichen Code kann man übrigens auch andere Probleme wie eine nicht mehr reagierende Oberfläche vermeiden.

  • Hier die Lösung ^^

    Das von Bitnugger hab ich nochmal getestet, um wirklich sicher zu gehen. Die sehen ziemlich ähnlich aus.

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • So in etwa sieht das bei mir vom Schema her in einem aktuellen Projekt aus:

  • uh, doch etwas mehr als bei mir...

    Wenns Fehler geben sollte, werd ich mir deins mal zu Gemüte führen, danke! :thumbup:

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.