{"id":69,"date":"2007-05-09T14:59:17","date_gmt":"2007-05-09T12:59:17","guid":{"rendered":"http:\/\/blog.m-ri.de\/index.php\/2007\/05\/09\/wie-einen-prozess-unter-vista-mit-gehobenen-rechten-starten\/"},"modified":"2009-08-29T11:26:15","modified_gmt":"2009-08-29T09:26:15","slug":"wie-einen-prozess-unter-vista-mit-gehobenen-rechten-starten","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2007\/05\/09\/wie-einen-prozess-unter-vista-mit-gehobenen-rechten-starten\/","title":{"rendered":"Wie einen Prozess unter Vista mit gehobenen Rechten starten?"},"content":{"rendered":"<p>Was macht man eigentlich wenn man einen Prozess unter Vista hat, der mit normalen Rechten arbeitet, nun aber einen Prozess starten m\u00f6chte, der angehobene Rechte (elevated) benutzen soll? Also quasi eine Abk\u00fcrzung f\u00fcr <em>&#8222;rechter Mausklick -&gt; Als Administrator ausf\u00fchren&#8220;<\/em>.<\/p>\n<p>Das ist ausgesprochen einfach! Man verwendet <em>ShellExecute<\/em> oder <em>ShellExecuteEx <\/em>mit dem neuen Verb <strong>&#8222;runas&#8220;<\/strong>.<\/p>\n<p>Der nachfolgende Code startet die Systemsteuerung mit angehobenen (administrativen\/elevated) Rechten. Vorher erfolgt nat\u00fcrlich die allseits bekannte UAC Nachricht. Ist der User kein Administrator bekommt er eine Meldung, dass er sich entsprechend anmelden soll. Ansonsten muss er dem Zugriff zustimmen. Bricht der User den Dialog ab wird nichts ausgef\u00fchrt.<\/p>\n<p class=\"ccode\">int _tmain(int argc, _TCHAR* argv[])<br \/>\n{<br \/>\n\u00a0\u00a0SHELLEXECUTEINFO shExecInfo;<br \/>\n\u00a0\u00a0<br \/>\n\u00a0\u00a0shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);<br \/>\n\u00a0\u00a0shExecInfo.fMask = NULL;<br \/>\n\u00a0\u00a0shExecInfo.hwnd = NULL;<br \/>\n\u00a0\u00a0shExecInfo.lpVerb = _T(&#8222;runas&#8220;);<br \/>\n\u00a0\u00a0shExecInfo.lpFile = _T(&#8222;control.exe&#8220;);<br \/>\n\u00a0\u00a0shExecInfo.lpParameters = NULL;<br \/>\n\u00a0\u00a0shExecInfo.lpDirectory = NULL;<br \/>\n\u00a0\u00a0shExecInfo.nShow = SW_SHOW;<br \/>\n\u00a0\u00a0shExecInfo.hInstApp = NULL;<br \/>\n\u00a0\u00a0<br \/>\n\u00a0\u00a0ShellExecuteEx(&amp;shExecInfo);<br \/>\n\u00a0\u00a0return 0;<br \/>\n}<\/p>\n<p>\u2757 PS: \u00dcbrigens versteht auch <em>Windows 2003 Server <\/em>und <em>Windows XP <\/em>das &#8222;runas&#8220; Verb. In diesem Fall wird der entsprechende Anmeldedialog gezeigt, der es erlaubt den aktuellen Benutzer zu verwenden (mit evtl. eingeschr\u00e4nkten Rechten), oder eben einen anderen Account. Nett! \ud83d\ude42<br \/>\nNur scheinbar auch ein Feature, dass wieder mal nicht dokumentiert ist.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Was macht man eigentlich wenn man einen Prozess unter Vista hat, der mit normalen Rechten arbeitet, nun aber einen Prozess starten m\u00f6chte, der angehobene Rechte (elevated) benutzen soll? Also quasi eine Abk\u00fcrzung f\u00fcr &#8222;rechter Mausklick -&gt; Als Administrator ausf\u00fchren&#8220;. Das ist ausgesprochen einfach! Man verwendet ShellExecute oder ShellExecuteEx mit dem neuen Verb &#8222;runas&#8220;. Der nachfolgende &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2007\/05\/09\/wie-einen-prozess-unter-vista-mit-gehobenen-rechten-starten\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eWie einen Prozess unter Vista mit gehobenen Rechten starten?\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,358],"class_list":["post-69","post","type-post","status-publish","format-standard","hentry","category-programmieren","category-vista-2","category-windows-api","tag-manifest","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\/69","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=69"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/69\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=69"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=69"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=69"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}