Tag 23: Das Manifest sagt: "Nur Admins, bitte" (UAC – Teil 3)Manifeste sind kleine XML-Dateien, die in die .EXE-Dateien eingebettet werden - unter anderem, um dem Betriebssystem mitzuteilen, welche Berechtigungen (im Sinne von UAC) das Programm benötigt. So kann Windows beispielsweise bei Installationsprogrammen gleich den Benutzer um die Erlaubnis zur Heraufstufung bitten, ohne dass der Benutzer daran denken muss. Unter Visual Studio steht ein "Application Manifest File" (app.manifest) als Vorlage im Dialog Datei » Neu zur Verfügung. Diese sieht dann so aus: (das Format wird vielen bekannt vorkommen, wurden diese Manifeste doch bisher schon eingesetzt, um den XP-Stil bei bestehenden Anwendungen – durch DLL-Redirection – einzuschalten.) Zur Auswahl stehen die Optionen "asInvoker" (= Windowsstandard, vererbe die Rechte des aufrufenden Programms), "requireAdministrator" (= Adminrechte sind zwingend erforderlich) und "highestAvailable" (= nimm das meiste an Rechten, was Du kriegen kannst). Programme, die im eingebetteten Manifest "requireAdministrator" stehen haben – was so viel heißt wie "erfordert Administratorrechte" - zeigt der Vista Explorer mit einem kleinen Schildsymbol an.
Entsprechende UAC-Manifeste lassen sich im Buildprozess mit dem Manifest Tool (mt.exe) integrieren. Bei C++ (ab VS 2005) geht das entspannt über die Projekteigenschaften, bei .NET-Programmen muss man im Post Build Event selbst Hand anlegen (VS 2005). Mit Visual Studio 2008 geht es auch für .NET nun deutlich einfacher. Morgen lernen wir, warum trotz User Account Control viele alte Programme dennoch laufen. Oder ist das alles nur Schein?
Viel Spaß beim Einbetten Ihrer Manifeste,
P.S. Übrigens: Microsoft hätte am liebsten, dass möglichst jede Software ein Manifest verwendet *und* die ausführbaren Dateien mit einem Zertifikat signiert sind, so dass auch zweifelsfrei der Herausgeber erkennbar ist. Denn wie soll ein Benutzer mit gutem Gewissen entscheiden, ob er einem Programm Adminrechte genehmigen möchte, wenn der Absender nicht zweifelsfrei feststeht?! P.P.S. Für Administratoren bietet Microsoft das Application Compatibility Toolkit an. Es erlaubt im großen Stil die PCs auf bekannte Probleme hin zu scannen und ggf. Fixes dafür zu erstellen. Mehr dazu auf der TechNet-Webseite zu Werkzeugen für Anwendungskompatibilität. |
|