INFO: Vista und die Notwendigkeit eines Manifestes für die UAC
-
Hi!
Wir haben soeben in unserer Firma die nächsten Schritte und Notwendigkeiten für Vista festgelegt.
Einen der wichtigsten Punkte möchte einfach mal hier darlegen.Unsere Software ist so geschrieben, dass ein Admin entsprechende Einstellungen in bestimmten Dateien im Programmverzeichnis ablegen kann und auch Einstellungen vornehmen kann die in HKLM abgelegt werden. Unter anderem dienen diese Dateien/Registry Einstellungen eben zur Kontrolle von Services und IPC. Sie müssen eben in einem allgemein zugänglichem Bereich liegen. Das ist ja nichts ungewöhnliches.
Brav wie wir sind haben wir entsprechende Prüfungen eingebaut und sagen dem Anwender, wenn er keine Rechte hat in HKLM zu schreiben, oder die entsprechenden Dateien im Programmverzeichnis zu ändern, z.B. INI Dateien die mit WritePrivateProfileString geschrieben werden.
Vista ist es nun egal, dass wir brave Entwickler sind. Vista behandelt uns per UAC Richtlinie wie einen Bösewicht und mappt alle Änderungen in den lokalen Bereich des Anwenders. Meine Software hat keine Chance zu erkennen, dass das schreiben in HKLM und den Programm-Datei Ordner eigentlich nicht erlaubt ist.
Man muss also zwingend ein Manifest für die UAC hinzufügen:
<?xml version="1.0" encoding="utf-8"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" /> </requestedPrivileges> </security> </trustInfo> </assembly>
Erst mit diesem Manifest verhält sich meinem Programm wieder so, wie ich es auch erwarte!
Siehe auch mein Blog:
http://blog.m-ri.de/index.php/category/programmieren/vista-2/Eine gute Anleitung hierfür:
- How To: Tell Vista's UAC What Privelege Level Your App Requires
http://channel9.msdn.com/Showpost.aspx?postid=211271Weitere Infos, Dokus und Hilfsprogramme:
- Understanding and Configuring User Account Control in Windows Vista
http://technet.microsoft.com/en-us/windowsvista/aa905117.aspx
- Windows Vista Application Development Requirements for User Account Control Compatibility
http://www.microsoft.com/downloads/details.aspx?FamilyID=BA73B169-A648-49AF-BC5E-A2EEBB74C16B&displaylang=en
- Microsoft Application Verifier
http://www.microsoft.com/downloads/info.aspx?na=47&p=1&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=BA73B169-A648-49AF-BC5E-A2EEBB74C16B&u=details.aspx%3Ffamilyid%3DBD02C19C-1250-433C-8C1B-2619BD93B3A2%26displaylang%3Den
- Microsoft Standard User Analyze
http://www.microsoft.com/downloads/info.aspx?na=47&p=2&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=BA73B169-A648-49AF-BC5E-A2EEBB74C16B&u=details.aspx%3Ffamilyid%3DDF59B474-C0B7-4422-8C70-B0D9D3D2F575%26displaylang%3Den:xmas1: Und alle Zeit Happy Coding! :xmas2:
-
hey cool