{"id":1,"date":"2006-12-12T12:50:43","date_gmt":"2006-12-12T11:50:43","guid":{"rendered":""},"modified":"2007-02-15T20:07:10","modified_gmt":"2007-02-15T19:07:10","slug":"vista-und-die-notwendigkeit-eines-manifestes-fur-die-uac","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2006\/12\/12\/vista-und-die-notwendigkeit-eines-manifestes-fur-die-uac\/","title":{"rendered":"Vista und die Notwendigkeit eines Manifestes f\u00fcr die UAC"},"content":{"rendered":"<p>Bei den vorbereiten von Software f\u00fcr Vista (Certified for Vista) ist mir die UAC (User Access Control) untergekommen. Unter Vista versch\u00e4rft sich das ganze noch einmal gegen\u00fcber Windows 2000.<\/p>\n<p>Einen der wichtigsten Punkte m\u00f6chte einfach mal hier darlegen.<br \/>\nUnsere 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\u00fcssen eben in einem allgemein zug\u00e4nglichem Bereich liegen. Das ist ja nichts ungew\u00f6hnliches.<\/p>\n<p>Brav wie wir sind haben wir entsprechende Pr\u00fcfungen eingebaut und sagen dem Anwender, wenn er keine Rechte hat in HKLM zu schreiben, oder die entsprechenden Dateien im Programmverzeichnis zu \u00e4ndern, z.B. INI Dateien die mit WritePrivateProfileString geschrieben werden.<\/p>\n<p>Vista ist es nun egal, dass wir brave Entwickler sind. Vista behandelt uns per UAC Richtlinie wie einen B\u00f6sewicht und leitet alle \u00c4nderungen 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.<\/p>\n<p>Man muss also zwingend ein Manifest f\u00fcr die UAC hinzuf\u00fcgen:<\/p>\n<p class=\"ccode\"><em>&lt;?xml version=&#8220;1.0&#8243; encoding=&#8220;utf-8&#8243;?&gt;<br \/>\n&lt;assembly xmlns=&#8220;urn:schemas-microsoft-com:asm.v1&#8243; manifestVersion=&#8220;1.0&#8243;&gt;<br \/>\n\u00a0 &lt;trustInfo xmlns=&#8220;urn:schemas-microsoft-com:asm.v3&#8243;&gt;<br \/>\n\u00a0\u00a0\u00a0 &lt;security&gt;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;requestedPrivileges&gt;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;requestedExecutionLevel level=&#8220;asInvoker&#8220; \/&gt;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/requestedPrivileges&gt;<br \/>\n\u00a0\u00a0\u00a0 &lt;\/security&gt;<br \/>\n\u00a0 &lt;\/trustInfo&gt;<br \/>\n&lt;\/assembly&gt; <\/em><\/p>\n<p><!--l version=\"1.0\" encoding=\"utf-8-->Erst mit diesem Manifest verh\u00e4lt sich meinem Programm wieder so, wie ich es auch erwarte!<\/p>\n<p>Eine gute Anleitung hierf\u00fcr:<br \/>\n&#8211; How To: Tell Vista&#8217;s UAC What Privelege Level Your App Requires<br \/>\n<small><a href=\"http:\/\/channel9.msdn.com\/Showpost.aspx?postid=211271\" class=\"moz-txt-link-freetext\">http:\/\/channel9.msdn.com\/Showpost.aspx?postid=211271<\/a><\/small><\/p>\n<p>Weitere Infos, Dokus und Hilfsprogramme:<br \/>\n&#8211; Understanding and Configuring User Account Control in Windows Vista<br \/>\n<small><a href=\"http:\/\/technet.microsoft.com\/en-us\/windowsvista\/aa905117.aspx\" class=\"moz-txt-link-freetext\">http:\/\/technet.microsoft.com\/en-us\/windowsvista\/aa905117.aspx<\/a><br \/>\n<\/small>&#8211; Windows Vista Application Development Requirements for User Account Control Compatibility<br \/>\n<small><a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?FamilyID=BA73B169-A648-49AF-BC5E-A2EEBB74C16B&amp;displaylang=en\" class=\"moz-txt-link-freetext\">http:\/\/www.microsoft.com\/downloads\/details.aspx?FamilyID=BA73B169-A648-49AF-BC5E-A2EEBB74C16B&amp;displaylang=en<\/a><br \/>\n<\/small>&#8211; Microsoft Application Verifier<br \/>\n<small><a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?familyid=BD02C19C-1250-433C-8C1B-2619BD93B3A2&amp;displaylang=en\">http:\/\/www.microsoft.com\/downloads\/details.aspx?familyid=BD02C19C-1250-433C-8C1B-2619BD93B3A2&amp;displaylang=en<\/a><br \/>\n<\/small>&#8211; Microsoft Standard User Analyze<br \/>\n<small><u><font color=\"#0000ff\"><a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?familyid=DF59B474-C0B7-4422-8C70-B0D9D3D2F575&amp;displaylang=en\">http:\/\/www.microsoft.com\/downloads\/details.aspx?familyid=DF59B474-C0B7-4422-8C70-B0D9D3D2F575&amp;displaylang=en<\/a><\/font><\/u><a href=\"http:\/\/www.microsoft.com\/downloads\/info.aspx?na=47&amp;p=2&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=BA73B169-A648-49AF-BC5E-A2EEBB74C16B&amp;u=details.aspx%3ffamilyid%3dDF59B474-C0B7-4422-8C70-B0D9D3D2F575%26displaylang%3den\" class=\"moz-txt-link-freetext\"><\/a><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei den vorbereiten von Software f\u00fcr Vista (Certified for Vista) ist mir die UAC (User Access Control) untergekommen. Unter Vista versch\u00e4rft sich das ganze noch einmal gegen\u00fcber Windows 2000. Einen der wichtigsten Punkte m\u00f6chte einfach mal hier darlegen. Unsere Software ist so geschrieben, dass ein Admin entsprechende Einstellungen in bestimmten Dateien im Programmverzeichnis ablegen kann &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2006\/12\/12\/vista-und-die-notwendigkeit-eines-manifestes-fur-die-uac\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eVista und die Notwendigkeit eines Manifestes f\u00fcr die UAC\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,17,2],"tags":[69,58,358],"class_list":["post-1","post","type-post","status-publish","format-standard","hentry","category-programmieren","category-vista-2","category-windows-api","tag-manifest","tag-uac","tag-vista"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/1","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=1"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/1\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}