Windows 8 ist Gift für Legacy Anwendungen

Mit Windows 8 könnte für viele Entwickler das böse Erwachen kommen: Legacy Anwendungen, die höhere Rechte erfordern, können nicht mehr ausgeführt werden. Vergleicht man die zwei Dialoge der Benutzerkontensteuerung von Windows 7 und Windows 8, so erkennt ist kein Unterschied ersichtlich. In beiden Fällen werden die Benachrichtigungen deaktiviert. Leider versäumt es Microsoft darauf hinzuweisen, dass damit die Benutzerkontensteuerung nicht wie in Windows 7 deaktiviert ist. Demzufolge laufen die Anwendungen weiterhin mit niedrigeren Rechten. Technischer Hintergrund ist der Admin Approval Mode (als Teil der UAC), welcher einen Security Token mit einer niedrigen Berechtigungsstufe an alle gestarteten Prozesse hängt. Mehr Informationen liefert Technet. Außerdem möchte ich auf diese Seite hinweisen, die das Thema verständlich und auf den Punkt gebracht erläutert.

Allerdings gibt es zwei Wege die UAC gänzlich abzuschalten: Über die Registry oder Richtlinieneditor (Anleitung). Leider führt das zu neuen Problemen, die sich so manifestieren:

image

Alle Windows 8 Apps können somit nicht mehr gestartet werden. Lediglich reine Desktopanwendungen funktionieren weiterhin. Der integrierte PDF Reader ist damit wertlos.

Die Theorie von Microsoft, dass alle Anwendungen inzwischen ohne Admin-Recht laufen sollten, ist schön und gut, allerdings ist sie, betrachtet man die Betriebe, eher realitätsfern. Legacy Code greift leider immer noch auf das Programmverzeichnis zu oder muss bei Updates COM-Komponenten in der Registry anmelden. Hier wäre es von Vorteil, wenn Microsoft eine Art Sandbox anbieten würde, in welcher die eigenen Anwendung auf Zugriffe mit erhöhten Berechtigungen analysiert werden kann. Dieses Analyse-Tool sollte dabei z.B. auch alten VB Code unterstützen und bis runter auf Methoden-Ebene die Ergebnisse anzeigen. Ich meine, dass es hierfür eine Lösung gibt, jedoch fällt mir der Name nicht mehr ein. Falls ein Leser helfen kann, so möge er mir das doch bitte schreiben!

Ansonsten bleiben zwei Alternativen. Zum einen müssen die Anwender das Programm übers Kontextmenü als Administrator ausführen, zum anderen wäre ein vorgeschalteter Prozess denkbar, der folgende Funktion übernimmt:

Well, it actually has to request permission in the code, which means a lot of programs are not going to work well with Windows 8 unless they rewrite the code to properly ask for permission.

 

Wer hat seine bestehenden Anwendungen bereits mit Windows 8 getestet und hat ähnliche Schmerzen? Oder können Microsoft Insider den Hintergrund für diese Entscheidung erklären, also den offensichtlichen Sicherheitsaspekt einmal außen vorgelassen. Könnte die Entscheidung im Rahmen der Apps notwendig gewesen sein?

Mit Tag(s) versehen: ,

7 thoughts on “Windows 8 ist Gift für Legacy Anwendungen

  1. Gerhard Stephan 26. Oktober 2012 um 10:04 Reply

    Schau mal hier: http://stackoverflow.com/questions/2818179/how-to-force-my-net-app-to-run-as-administrator-on-windows-7
    Damit kannst Du festlegen, dass die App in jedem Fall Administrationsrechte braucht.

    Gefällt mir

  2. Anonymous 26. Oktober 2012 um 10:33 Reply

    Ehrlich gesagt versteh ich das Problem nicht wirklich bzw. wenn Programme in der Registry & co. rumschreiben dann benötigten sie nunmal höhere Berechtigungen. Ansonsten musst du den User darauf Aufmerksam machen das Programm unter Adminrechten zu starten. Visual Studio z.B. bekommt dies ja auch hin und würde ich nicht als einfache Anwendung betrachten. Ich entwickel auch gerade eine Client-Anwendung, welche auf COM (für Word etc.) zurückgreift und die funktioniert soweit ohne Probleme unter Windows 8 – auch ohne das manipulieren der UAC und ohne Adminrechten.
    Ich kenne auch keinen der die UAC komplett deaktiviert hat – wenn die Programme so legacy sind, dann ist das vielleicht mal eine gute Gelegenheit diese über Bord zu werfen.

    Gefällt mir

    • Uli Armbruster 26. Oktober 2012 um 11:56 Reply

      ERP System über Bord werfen is nich… Habe für diese Diskussion einen neuen Blogeintrag erstellt

      Gefällt mir

    • Sebastian 27. Oktober 2012 um 22:58 Reply

      BTW: Du kannst auch in der COM Entwicklung dahingehend Probleme bekommen, die meisten dieser Probleme treten aber nur dann auf wenn du bereits laufende COM Server automatisieren willst. Beispiel: Wenn dein Client mit erhöhten Rechten läuft und der COM Server nicht wird das nix. (Man sollte meinen mit erhöhten Rechten sollte man den Niedrig-Rechte COM Server ansprechen können, da COM bidirektional funktioniert entsteht hier aber ein Szenario wo Code mit niederen Rechten Code mit höheren Rechten zur Ausführung bringen kann was Microsoft unterbunden hat. Anders gesagt: Klappt in XP und darüber kanns knallen)

      Gefällt mir

  3. Anonymous 26. Oktober 2012 um 10:34 Reply

    Der Anonyme Beitrag kam von mir: Robert Mühsig. Sobald ich mein Name in den Kommentarfeld eingegeben hab kam aber eine Loginmaske für wordpress.com – was ich absolut unnötig erachte mir hier ein Login zuzulegen.

    Gefällt mir

  4. […] meinem vorherigen Blogeintrag Windows 8 ist Gift für Legacy Code kam auf Twitter eine Diskussion zu Stande, wieso denn unsere Anwendung derart hohe Berechtigungen […]

    Gefällt mir

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: