Wo für braucht eine Anwendung Administrator Rechte
Hallo,
Meine tolle Herbrich Software braucht immer Administrator Rechte. Ich möchte gerne wissen wo für um diese Funktionen (Code Aufrufe) nur bei tatsächlich verfügbaren Adminrechten auszuführen. Meine konkrete Frage lautet also: **Wie finde ich heraus wo für eine .net 4.0 Anwendung (in Visual Basic programmiert) Administrator Rechte braucht.
Gruß an die IT-Welt,
J Herbrich
Meine tolle Herbrich Software braucht immer Administrator Rechte. Ich möchte gerne wissen wo für um diese Funktionen (Code Aufrufe) nur bei tatsächlich verfügbaren Adminrechten auszuführen. Meine konkrete Frage lautet also: **Wie finde ich heraus wo für eine .net 4.0 Anwendung (in Visual Basic programmiert) Administrator Rechte braucht.
Gruß an die IT-Welt,
J Herbrich
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 345683
Url: https://administrator.de/forum/wo-fuer-braucht-eine-anwendung-administrator-rechte-345683.html
Ausgedruckt am: 22.12.2024 um 14:12 Uhr
25 Kommentare
Neuester Kommentar
Hi,
Fordert die Anwendung schon beim Start, "als Administrator" ausgeführt zu werden oder funktioniert sie nur dann richtig, wenn sie "als Administrator" ausgeführt wird?
Ersteres:
Da hast Du im Manifest "requireAdministrator" eingestellt. https://msdn.microsoft.com/de-de/library/bb384691(v=vs.110).aspx
Letzteres:
Irgendwo in Deinem Code greifst Du auf eine Ressource zu, auf welcher nur "die Administratoren" Zugriff haben oder Du benötigst irgendeins von den Privilegien, welche standardmäßig nur "die Administratoren" haben.
Was macht denn "Deine tolle Hebrich Software"?
E.
Das ist leider nicht so einfach. Diese Software ist von mir selbst programmiert. Das steht ja auch Oben in Post. Zitat:""Meine tolle Herbrich Software "".
Willst Du uns jetzt veralbern?Fordert die Anwendung schon beim Start, "als Administrator" ausgeführt zu werden oder funktioniert sie nur dann richtig, wenn sie "als Administrator" ausgeführt wird?
Ersteres:
Da hast Du im Manifest "requireAdministrator" eingestellt. https://msdn.microsoft.com/de-de/library/bb384691(v=vs.110).aspx
Letzteres:
Irgendwo in Deinem Code greifst Du auf eine Ressource zu, auf welcher nur "die Administratoren" Zugriff haben oder Du benötigst irgendeins von den Privilegien, welche standardmäßig nur "die Administratoren" haben.
Was macht denn "Deine tolle Hebrich Software"?
E.
Hi,
also Code Aufrufe brauchen keine Privilegien, sie laufen auf der CPU.
Allgemein braucht die Code Abarbeitung keine Admin Rechte, du brauchst die nur wenn du auf Ressourcen zugreifen willst wie emeriks
schon bemerkt hat. Es kann eine Datei sein oder Registry Einträge oder sonst irgendwelche Dateien, wo man "normal" nicht dran kommt.
Gruß
also Code Aufrufe brauchen keine Privilegien, sie laufen auf der CPU.
Allgemein braucht die Code Abarbeitung keine Admin Rechte, du brauchst die nur wenn du auf Ressourcen zugreifen willst wie emeriks
schon bemerkt hat. Es kann eine Datei sein oder Registry Einträge oder sonst irgendwelche Dateien, wo man "normal" nicht dran kommt.
Gruß
also Code Aufrufe brauchen keine Privilegien, sie laufen auf der CPU.
Was ist das denn für eine Aussage?!Wenn Du z.B. Daten kopieren willst (Backup), für welche das Konto keine NTFS-Berechtigungen hat, dann benötigt das Konto das aktivierte Privileg SeBackupPrivilege. Und dieses kann man nur aktivieren wenn a) man es erteilt bekommen hat und b) der Prozess voll eleviert läuft.
@emeriks sorry mein Fehler, für bestimmte Schnittstellenaufrufe braucht man natürlich Berechtigungen. Für den eigenen Code natürlich nicht.
Also kann man sich eine Schnittstelle auch wie eine Ressource vorstellen.
Also kann man sich eine Schnittstelle auch wie eine Ressource vorstellen.
Ja, und genau das will ich ja herausfinden um welche Einträge sich es genau handelt. Kann man da irgendwie mit einen Debugger an die Sache ran gehen??
Bist Du sicher, dass Du das Programm programmiert hast oder hast Du es nur zusammenkopiert und dann kompiliert? Letzteres kommt vor, doch dann sollte man sich nicht mit "ist von mir selbst programmiert" hinstellen.Wer, wenn nicht der Programmierer, kann diese Frage beantworten?
- Du musst doch wissen, was das Programm macht?
- Du wirst doch in der Lage sein, Dein Programm zu debuggen? Den Quellcode hast Du doch sicherlich noch?
- Wenns ganz dumm läuft, dann tust Du so, als sei es ein fremdes Programm und überwachst es mit PROCMON.
Moin,
nutze von live.sysinternals.com ProcMon.
Damit kannst du die Zugriffe, welche administrative Berechtigungen benötigen herausfinden.
In den c't Ausgaben 16/2017 und 17/2017 sind Artikel über die Nutzung von ProcMon enthalten.
Gruss Penny
nutze von live.sysinternals.com ProcMon.
Damit kannst du die Zugriffe, welche administrative Berechtigungen benötigen herausfinden.
In den c't Ausgaben 16/2017 und 17/2017 sind Artikel über die Nutzung von ProcMon enthalten.
Gruss Penny
Zitat von @Herbrich19:
Hallo,
Ok, ich habe einen Plan, ich erstelle einfach für jede Zeile ein Breakepoint und lasse es laufen. Dann kann ich das ganze Programm bis zum laden der MDI Form beobachten und weiß so auch wo es sich beendet. Dann kann ich eine Abfrage implementieren die Users Berechtigungen abfragt und gut ist.
Ich schreibe heute Abend wen ich damit durch bin.
Gruß an die IT-Welt,
J Herbrich
Du bist nen Vogel! Die Fehlermeldungen sind doch eindeutig! Wenn ich deine halbherzigen Ausführungen richtig verstanden habe, versuchst du dein Programm direkt in das Programme-Verzeichnis zu kompilieren. Da hat ein User aber keine Schreibzugriffe!!!Hallo,
Ok, ich habe einen Plan, ich erstelle einfach für jede Zeile ein Breakepoint und lasse es laufen. Dann kann ich das ganze Programm bis zum laden der MDI Form beobachten und weiß so auch wo es sich beendet. Dann kann ich eine Abfrage implementieren die Users Berechtigungen abfragt und gut ist.
Ich schreibe heute Abend wen ich damit durch bin.
Gruß an die IT-Welt,
J Herbrich
Gruß
Zitat von @Herbrich19:
Also das Programm ist wirklich von mir, und ja ich habe es selber Programmiert über inzwischen schon 7 Jahre lang.
Bist du dir da sicher? Nach 7 Jahren sollte man das Ganze eigentlich kennen.Also das Programm ist wirklich von mir, und ja ich habe es selber Programmiert über inzwischen schon 7 Jahre lang.
Wenn dein Accout zur lokalen Admingruppe zu gehört, heißt das nicht, dass du grundsätzlich mit erhöhten Rechten arbeitest. Kannst du einfach testen, indem du mal versuchst per Rechtsklick eine leere Textdatei im Programme-Verzeichnis zu erstellen. Im Zweifelsfall bekommst du dort nicht einmal die Menüoption angezeigt.
Grüße
rubberman
Du bist nen Vogel! Die Fehlermeldungen sind doch eindeutig! Wenn ich deine halbherzigen Ausführungen richtig verstanden habe, versuchst du dein Programm direkt in das Programme-Verzeichnis zu kompilieren. Da hat ein User aber keine Schreibzugriffe!!!
Ja, das sehe ich auch so. Ich denke, er hat eingestellt, dass die Binärdateien direkt ins Program Files (x86) erzeugt werden sollen. Und wenn das Programm von dort gerade läuft, dann geht das natürlich nicht.Ersteres ist sowieso Nonsens! Das erzeugte Kompilat sollte niemals direkt im endgültigen Zielordner landen. Wie willst Du sonst Releases erzeugen, diese testen und dann erst produktiv freigeben?
Zweites ist kein Fehler sondern by design! Es ist logisch, dass er die Dateien dort nicht hin kopieren (erzeugen) kann, wenn diese gerade in Benutzung sind. Ist etwa das der Auslöser für Deine Frage? Falls ja, dann brauchst Du Dein Programm nicht zu debuggen. Das ist kein Verhalten Deines Programms sondern eines der IDE.
Falls doch nicht der Auslöser und es ist doch Dein Programm:
Ok, ich habe einen Plan, ich erstelle einfach für jede Zeile ein Breakepoint und lasse es laufen. Dann kann ich das ganze Programm bis zum laden der MDI Form beobachten und weiß so auch wo es sich beendet. Dann kann ich eine Abfrage implementieren die Users Berechtigungen abfragt und gut ist.
Da reicht genau ein Breakpoint und ab dort die schrittweise Ausführung ...Zitat von @emeriks:
Und noch etwas ... Und ich bitte schon mal um Verzeihung, falls ich jetzt doch etwas sehr polemisch werden sollte.
Und auch vor Administratoren. Und noch etwas ... Und ich bitte schon mal um Verzeihung, falls ich jetzt doch etwas sehr polemisch werden sollte.
Wo für braucht eine Anwendung Administrator Rechte
Manchmal einfach nur deshalb, um den Computer vor dem Programmierer zu schützen. Zitat von @Herbrich19:
Das Problem ist Tatsächlich das egal ob ich die Debug Version oder die Release Version starte das Programm sich komentarlos beendet ohne Admin rechte.
Das Problem ist Tatsächlich das egal ob ich die Debug Version oder die Release Version starte das Programm sich komentarlos beendet ohne Admin rechte.
Wieso ist das ein Problem? Dein Visual-Studio macht genau das, was Du in den Einstellungen vorgegeben hast (Copy Local Flag), d.h. die von deinem Programm benötigten Resourcen werden bei der Erstellung in das Ausgabeverzeichnis kopiert.
Natürlich benötigtst Du für dein gewähltes Ausgabe-Verzeichnis (..\Program Files (x86)\..) administrative Rechte!
Du solltest/musst ein Ausgabe-Verzeichnis wählen, welches keine administrativen Rechte benötigt. Die Installation im Endverzeichnis (unter \Program Files (x86)\... bzw. \Program Files\...) überlässt Du später deinen Installer (der Admin-Rechte hat).
Visual Studio 2010 Set the Copy Local Property of a Reference
Error 4 Unable to copy file "C:\Users\xX_Je\Documents\Visual Studio 2010\Projects\Herbrich-22\Fiona\bin\Debug\Fiona.dll" to "..\..\..\..\..\..\..\Program Files (x86)\ZN\HERBRICH\22\_bin\Fiona.dll". Access to the path '..\..\..\..\..\..\..\Program Files (x86)\ZN\HERBRICH\22\_bin\Fiona.dll' is denied.
Zur Laufzeit müssen sich Assemblies an einem der beiden folgenden Orte befinden: im Ausgabepfad des Projekts oder im globalen Assemblycache. Wenn das Projekt einen Verweis auf ein Objekt enthält, der sich nicht an einem der oben genannten Orte befindet, dann muss der Verweis beim Erstellen des Projekts in den Ausgabepfad des Projekts kopiert werden. Die CopyLocal-Eigenschaft gibt an, ob diese Kopie erstellt werden muss. Wenn der Wert true lautet, wird der Verweis kopiert. Wenn er false lautet, wird der Verweis nicht kopiert.
Das Verzeichnis Program Files (x86)\ZN\HERBRICH\22\_bin\ ist einfach nicht der passende Ort für die Ausgabe des Visual-Studio "Compiler"
MfG
Und seine Frage ist immer noch nicht gelöst.
@Herbrich19:
Arbeitest Du an Deinem Programm oder hast Du es aufgegeben?
Gruss Penny
@Herbrich19:
Arbeitest Du an Deinem Programm oder hast Du es aufgegeben?
Gruss Penny