Frage

Ich habe versucht, in C # 3.5 einige Win32 Sachen zu tun erhöhte Benutzerrechte für eine Konsolenanwendung zu bekommen. Ich entwickle auf Visual Studio 2008 SP1 / DDR und die Dinge gut funktionieren, wenn sie unter dem Debugger ausführen. Dinge auch funktionieren, wenn ich die Konsole app Stand-alone laufen. Dinge auch gut laufen, wenn ich alles in eine MSI-Paket und es auf einem 2003-Server installieren und die Konsolenanwendung ausgeführt werden.

Wenn ich die gleiche MSI nehmen und installieren Sie es auf einem 2008-Server mit UAC aktiviert ist, dann die Konsole app laufen, erhalte ich Meldungen wie diese:

Unable to set right for the account "DOMAIN\QAUSER": SeCreateGlobalPrivilege
System.UnauthorizedAccessException    Attempted to perform an unauthorized operation.

Ich kann meine deployment / Server-Admins nicht erwarten, dass irgendetwas mit meiner app zu tun, außer es zu installieren, und sie werden sich nicht drehen off UAC. Es muss ein programmatischer Weg, um richtig eingestellten Benutzerrechte sein, dass ich an der Konsole App hinzufügen kann - Wer weiß, wie

Danke.

War es hilfreich?

Lösung

Wahrscheinlich verwenden Sie " Global \" Präfix die Objektname in der Anwendung und Ihre Anwendung in einer Remote Desktop Session Host (RD-Sitzungshost) Server-Sitzung gestartet werden. In dem Fall müssen Sie Ihr Programm aktivieren SE_CREATE_GLOBAL_NAME (SeCreateGlobalPrivilege) Privileg. Siehe C # - Wie SeDebugPrivilege (aber Verwendung SE_CREATE_GLOBAL_NAME ermöglichen statt SE_DEBUG_NAME) oder manipulieren Privilegien in verwaltetem Code zuverlässig, sicher und effizient wie ein Beispiel.

Andere Tipps

Ich gehe davon aus, dass UAC auf den 2008-Computer aktiviert ist, und ich kann noch nicht auf Ihrer Frage Kommentar zu erfahren.

Wenn ja, stellen Sie sicher, dass in Ihrer app.manifest Datei in VS (unter Eigenschaften), ändern

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

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

Auch wenn der Code als Administrator ausgeführt wird, haben Sie durch die UAC Warnung erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top