VB Anwendung unter Windows 8 benötigt Admin Rechte

Murphy9904

Lt. Junior Grade
Registriert
Mai 2007
Beiträge
344
Hi,
ich habe ein Problem und zwar habe ich unter Windows 8 ein Problem eine VB Anwendung zu starten.

bei dieser ist immer ein Schild Symbol und sie benötigt Admin Rechte.

kE9zA8f4fO.PNG


Das komische ist das dies eine Anwendung unter vielen ist und diese auch keine Extra besonderen Rechte benötigt.

Ich kann den ausführenden Benutzer aber auch nicht als Admin einrichten.
Weis jemand wie ich das Umgehen kann.

es ist auch nicht auf jedem Windows 8 Pc so.


Danke schonmal

Murphy
 
Windows kann nicht erkennen welche .exe Adminrechte benötigen wird und welche nicht. Daher hat Windows ein paar Regeln um abzuschätzen ob die .exe mit oder ohne erhöhten Rechten laufen soll.

Die Kriterien lassen sich auch googlen.

Bei einer Schulung hat mir ein MS Trainer mal gesagt dass ein Kriterium unter anderem der Name ist.


Du hast in dem Namen deiner .exe das Wort update drin. Nimm das mal raus.
 
easy.2ci schrieb:
Windows kann nicht erkennen welche .exe Adminrechte benötigen wird und welche nicht. Daher hat Windows ein paar Regeln um abzuschätzen ob die .exe mit oder ohne erhöhten Rechten laufen soll.
Quark das steht in der Manifest der Anwendung drin, welche Rechte es benötigt.
easy.2ci schrieb:
Bei einer Schulung hat mir ein MS Trainer mal gesagt dass ein Kriterium unter anderem der Name ist.
Wer weiß wer euch da was erzählt hat. Ich kann eine Anwendung auch update.exe nennen, die im aktuellen Verzeichnis nur eine test.txt anlegt. Benötigt trotzdem keine Admin-Rechte.
 
Murphy9904 schrieb:
Ich kann den ausführenden Benutzer aber auch nicht als Admin einrichten.
Weis jemand wie ich das Umgehen kann.
Rechtsklick auf die Datei => Eigenschaften => Kompatibilität => Haken bei "Programm als Administrator ausführen" setzen.

edit: @Murphy9904: einmal die Login Daten vom Admin eintippen, falls es vorhanden ist, und schon bleibt's gespeichert, wenn der Haken gesetzt ist und die Abfrage sollte nicht mehr kommen. Oder liegt bei dir das Problem, dass du keinen Zugriff aufs Adminkonto hast?
 
Zuletzt bearbeitet:
Hey

also easy.2ci du hattest wohl recht, es lag an dem Update
habe den Namen geändert (musste den alten Namen in den Eigenschaften der exe auch rauslöschen was wiederrum nur mit einem Windows 7 Pc ging)

aber jetzt konnte ich es auch unter dem normalen Benutzer starten :) Danke

58Yuuri Du hast ja witzige Hobbys. Anderen Leuten ihre Lösungsansätze nieder machen ohne selbst davon Ahnung zu haben.
Zu dem Manifest muss ich dir aber trotzdem recht geben :)

Randy89 Ich will es ja nicht unter Admin starten müssen ;)

Aber danke easy.2ci


LG Murphy
 
Zuletzt bearbeitet:
Manifests sind eine von vielen Möglichkeiten.

Wenn du aber keine .Net Anwendung hast gibt es kein Manifest. Und dann greift der Fallback auf andere Kriterien.

Yuuri schrieb:
Ich kann eine Anwendung auch update.exe nennen, die im aktuellen Verzeichnis nur eine test.txt anlegt. Benötigt trotzdem keine Admin-Rechte.

Ja. Nur Windows muss bei der Anzeige des Icons schon entscheiden ob die Datei Adminrechte braucht oder nicht. Also noch bevor die Datei überhaupt gestartet wurde. Ob die .exe nur eine harmlose txt Datei anlegt oder nicht kann Windows ja nicht wissen.
 
Zuletzt bearbeitet:
Murphy9904 schrieb:
Du hast ja witzige Hobbys. Anderen Leuten ihre Lösungsansätze nieder machen ohne selbst davon Ahnung zu haben.
Wieso nieder machen? Es stimmt nun mal nicht und damit sowas nicht durchs Internet geistert, sollte man das auch gleich klar stellen. Sonst kommt man bei sowas wie "msconfig Tuning" heraus, wo "Windows ja nicht alle CPU-Kerne zum Booten nutzt". Außerdem gibt es keinen Lösungsansatz, welcher dieser Theorie entspricht ("benenn die Datei mal um, evtl. hast du Glück und Windows schätzt falsch").

Fakt ist, dass Windows überhaupt nichts "schätzt", weder am Dateinamen noch an sonst irgendwas. Am Dateinamen erkennt man rein gar nichts und eineheuristische Suche gibt es ebenso nicht, sonst würde Windows beim Auflisten tausender Dateien "Jahre" benötigen. Die benötigten Rechte stehen in der Manifest-Datei, die beim Kompilieren mit in die exe-Datei gepackt wird (keine Ahnung ob eine externe Manifest auch die benötigten Rechte ändern kann). Wie sollte Windows auch sonst wissen, dass der Trojaner 098f6bcd4621d373cade4e832627b4f6.exe (kein update, setup, install o.ä. im Namen) im Ordner %appdata% (User hat volle Rechte in diesem Ordner) Admin-Rechte benötigt (und somit das UAC-Symbol erscheint)?

Um die Theorie mal zu entkräften:

x-beliebige ausführbare Datei -> Eigenschaften -> Kompatibilität -> Programm als Admin ausführen: du siehst das UAC-Symbol
eben diese Datei in irgendwas umbenennen: das UAC-Symbol ist weg
Datei wieder in ihren alten Namen umbenennen: das UAC-Symbol ist wieder da
kopier eine x-beliebige Datei, die keine Admin-Rechte brauch, an den Ort mit dem Namen, an welcher obige Datei steht: UAC-Symbol ist da und das trotz dass für die Anwendung keine Admin-Rechte von Nöten sind (sonst hätte es wohl schon das UAC-Symbol)

Der Grund:

Die Kompatibilitätsparameter werden in der Registry für jede einzelne Datei hinterlegt. Der Schlüssel dafür lautet HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers, wobei die Daten im Format "Dateiname" = "Kompatibilitätsoptionen" abgespeichert werden. Und für die von mir gerade eben gesetzten Parameter gibt es in dem Schlüssel einen Eintrag "D:\Entwicklung\C#\Visual Studio\EnvEd\EnvEd\bin\Debug\EnvEd.exe" = "~ RUNASADMIN". Lösch ich diesen Key und aktualisiere den Explorer, ist das UAC-Symbol genauso weg.

Es wird rein gar nichts geschätzt.

Eine Suche nach "windows admin rechte schätzen" ergab keine Treffer, die im Kontext dazu stehen.

edit:

easy.2ci schrieb:
Wenn du aber keine .Net Anwendung hast gibt es kein Manifest. Und dann greift der Fallback auf andere Kriterien.
Manifests können in jede beliebige Anwendung gelinkt werden. Der Entwickler muss diese nur dazu linken und schon hat sich das gegessen.

http://msdn.microsoft.com/en-us/library/windows/desktop/dd371711(v=vs.85).aspx -> Nichts von ".NET exlusive" o.ä. zu lesen.
 
Zuletzt bearbeitet:
es liegt am Namen. Er beinhaltet "Update", das ist ein Trigger um diese legacy Anwendung per Adminrechte zu starten.
 
Zurück
Oben