Ich habe eine Konsolenanwendung, die entwickelt wurde, um von einer ERP-Software aufgerufen zu werden.
Sie rufen meine App in der erp auf und wenn sie es tun, bekomme ich immer Fehler, die mit der unzureichenden Berechtigung zusammenhängen.
Ich habe das Kontrollkästchen "Dieses Programm als Administrator ausführen" in den Eigenschaften der exe für alle Benutzer aktiviert, aber das Ergebnis ist das gleiche.
Ich habe etwas über das Hinzufügen eines Manifests gelesen, das die App zur Eingabe des uac-Dialogs auffordert, aber das ist nicht das, was ich möchte, weil die App von erp auf dem Server aufgerufen wird und Clients das Dialogfeld auf dem Server nicht sehen / p>
Kann mir jemand erklären, wie diese Konsolen-App immer als Administrator ausgeführt wird?
Verstehen Sie zunächst, dass es zu einem bestimmten Zeitpunkt in diesem Prozess einen UAC-Dialog geben wird. Es gibt keine Möglichkeit, es zu vermeiden. Es gibt ein paar Ansätze, die Sie ergreifen können:
runas
Verb ist ein Ansatz hier. Dies belastet den ERP-Entwickler und kann möglicherweise nicht dazu in der Lage sein. UseShellExecute
auf "true" gesetzt ist oder dass das Manifest ignoriert wird. Wenn Sie die erste Option auswählen, wird die UAC-Eingabeaufforderung bei jedem Start der ERP-Anwendung angezeigt. Nicht gut. Wenn Sie die zweite oder dritte auswählen, wird die UAC-Eingabeaufforderung immer dann angezeigt, wenn Ihre Konsolenanwendung über die ERP-App gestartet wird. Wahrscheinlich akzeptabel.
Eine andere Sache, die Sie in Betracht ziehen könnten, ist, viel genauer zu untersuchen, warum die Konsolen-App Administratorrechte benötigt. Schreibst du in die Wurzel von C oder in Programme? Aktualisieren Sie einen Registrierungsschlüssel in HKLM? Was auch immer du machst, warum machst du es so? Sofern Ihre App nichts installiert oder konfiguriert (in diesem Fall ist eine UAC-Eingabeaufforderung gut und ordnungsgemäß), sollten Sie versuchen, sie so anzupassen, dass sie in den Vorbenutzerspeicher schreibt und keine Erhöhung benötigt. Dann wirst du dich nicht mehr darüber sorgen müssen, wie man es erhöht startet, auf jeden Fall.
Erstellen Sie eine Batchdatei, die etwas wie folgt enthält:
%Vor%Wo% USERDOMAIN% und% USERNAME% durch Ihre Administratorkontodaten ersetzt werden.
Und führen Sie das stattdessen?
Tags und Links c# console-application runas uac elevated-privileges