2017-04-14 1 views
0

Ich habe ein Programm, das mit normalen Rechten ausgeführt werden muss. Um Piraterie zu verhindern, starten wir beim Start unserer Anwendung eine License Manager Anwendung, die mit Erhöhte Privilegien ausgeführt werden muss. Nach Anfrage bei unseren Lieferanten scheint der Lizenzmanager diese erhöhten Privilegien in seiner app.manifest Datei hinzugefügt zu haben, die notwendig ist, um eine Art von Informationen zu Disk ID zu lesen, also ist es obligatorisch (wir können seine Privilegienanforderungen nicht reduzieren). Eine Anwendung mit erhöhten Rechten von einem normalen privilegierten Konto aus einer normalen Anwendung aufrufen, die ein Problem verursacht, wenn sie in Programme abgelegt wird

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 

Die Anwendung erfolgreich startet die License Manager, wenn es in einem normalen Ordner abgelegt wird. Wenn es jedoch im Ordner "Programme" abgelegt wird, scheint es beim Start ohne Hinweis zu schließen.

Wir haben auch überprüft, ob wir die Anwendung mit normalen Anmeldeinformationen ausführen, ohne den Lizenzmanager hinzuzufügen (es funktioniert einwandfrei).

Benötigen wir eine Art von Einstellungen, die entweder in der Registrierung oder in anderen Windows-Einstellungen geändert werden müssen, um das Hochladen privilegierter Anwendungen von einem normalen Konto zu ermöglichen. Möglicherweise muss ein Code-Snippet im Code-Startabschnitt hinzugefügt werden, um dieses Szenario zu aktivieren.

Wir haben sogar versucht, den in Programme erstellten Ordner in den Desktop einzufügen (es läuft auch gut).

OS: Windows 7

Bitte lassen Sie mich wissen, ob weitere Informationen Form meiner Seite benötigt wird. Jede Hilfe in dieser Richtung wird geschätzt.

+0

jede Spur dieses Fehlers in der Ereignisanzeige? – kennyzx

+0

@kennyzx, wo finde ich Ereignisanzeige? –

+0

Google kann helfen. Oder indem Sie "eventvwr.exe" ausführen – kennyzx

Antwort

0

Mein Humble Appolias für die Annahme eines Problems mit Programmdateien Verzeichnis.

Es stellte sich heraus, dass die Protokolle, die von License Manager geschrieben wurden, in dem aktuellen Anwendungsausführungsordner geschrieben wurden. Das Problem wurde dadurch verursacht, dass versucht wurde, das Protokoll in den Ordner "Programme" zu schreiben, wenn die Anwendung nicht über die Berechtigung zum Schreiben einer Textdatei in diesen Ordner verfügte.

Die Logging-Logik wurde vom License Manager geteilt (von dem Programm, das wir eine Funktion aufgerufen haben, die im License Manager definiert wurde, der Protokolle schrieb) und von der Anwendung, die vom Ordner Programme lief.

Wir haben den Log-Erstellungsordner in den AppData-Ordner geändert. Dies hat dazu geführt, dass die Anwendung erfolgreich gestartet wurde.

Ursache Fazit:

Schreiben Protokolldatei im Ordner Programme aus einer Anwendung, die nicht Admin-Privileg hat.

Hinweis: Ich habe diesen Beitrag und diese Antwort hinzugefügt, um anderen wie mir zu helfen, falls sie keine Lösung in dieser Art von Szenario haben.

Verwandte Themen