Pour des raisons stratégiques (ITIL, RSSI etc..) il est assez commun maintenant que les admins "applicatifs" ne sont pas admins des serveurs.

Mais du coup, impossible de lancer la console d'admin de l'application sur le serveur si celle-ci prends en compte les fonctionnalités UAC et que l'éditeur n'est pas d'accord avec votre ségrégation des droits Système VS Applicatif.


De plus, si votre RSSI est un peu rigide, vou sne pourrez pas faire d'exception pour l'appli X et le serveur Machin, l'UAC est activé et il n'est pas autorisé de le désactiver quelqu'en soit la raison. Et voici la solution :


Comme vous le savez probablement, l'UAC lis un "manifest" dans l'entête de l'exe des applications, afin de voir s'il est concerné. Si le manifeste décrit l'exécution en mode "RunAsAdmin", la popup bien connu apparait. Il faut donc modifier le manifest, et pour ça... patcher l'exe (ça rappellera des souvenirs aux plus vieux d'entre vous, habitués aux trucs obscrurs du genre "Cracked by Replicator", la bible des pokes etc...)


Heureusement (ou pas?), nous ne sommes plus dans les 90's et maintenant -désolé- il y a une application pour ça :)

En fait, il y a même un environnement complet et gratuit fourni par MIcrosoft afin d'y travailler. Celui-ci s'appelle MS Aplication Compatibility Toolkit. (nécessite .Net Framework 3.5)


Afin de désactiver l'UAC pour l'exécutable, Il va donc falloir :

  • Installer l'environnement (et oui!)

  • lancer "Compatiility Administrator" en tant qu'administrator

  • Dans le panneau gauche, dans Custom Databases faire un click droit puis New et créer une nouvelle DB.

  • Une fois celle-ci créée, faire un click droit puis Create new > Application Fix

  • Entrer le nom de l'application, et spécifier le chemin de celle-ci (ou faire Browse) puis Next

  • Faire Next, jusqu'à arriver à l'écrans Compatibility Fixes

  • Dans celui-ci, chercher la case appelée RunAsInvoker et la cocher, si RunAsAdmin est coché (on le suppose), décocher la case. Faire ensuite Next et Finish

  • De retour dans la fenêtre principale, dans le menu File, faire save et donner un nom au fix créé.

  • Il faut maintenant patcher ce bon vieux fichier, dans le menu File, faire simplement Install

C'est terminé. L'application ne fera maintenant plus appel à l'UAC. Attention, ça ne signifie pas qu'elle marchera forcément si l'utilisateur n'est pas Administrateur du serveur (pour ça, il y a les droits sur les clés de registre et les fichiers -> Procmon) mais permettra en tout cas d'éviter la première phase UAC, sans devoir désactiver celui-ci.