Comment créer un raccourci pour lancer une application avec des privilèges d’administrateur depuis la ligne de commande?

J’ai un installateur (Inno-Setup) qui installe mon application sur un chemin défini par l’utilisateur. À la fin de la routine d’installation, je veux créer un raccourci qui lance l’application avec des privilèges d’administrateur. La solution devrait fonctionner sur toutes les versions de WinXP à Win7.

Que puis-je faire pour y parvenir?

Je sais que c’est possible avec un script batch, qui exécute un vb-script méchant . L’inconvénient est que la fenêtre contextuelle de cmd-window fonctionne uniquement sur win7.

J’ai également essayé la commande mklink pour créer un lien hypertexte, mais cela ne fonctionne pas car il n’est pas possible de passer un argument définissant les privilèges d’administrateur.

Vous pouvez append une clé de registre qui indique à Windows d’exécuter votre programme en tant qu’administrateur:

Sous HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers , ajoutez simplement une clé (REG_SZ) avec la valeur RUNASADMIN . Lorsque vous lancez votre exe, vous serez invité à accéder à l’administrateur.

Avec cela, vous pouvez simplement créer un raccourci normal vers votre exécutable comme vous le feriez avec Inno-Setup.

Si vous voulez le faire via un fichier cmd ou un fichier batch, vous pouvez utiliser la commande suivante:

 reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "" /t REG_SZ /d RUNASADMIN 

Le “Exécuter en tant qu’administrateur” est une propriété de l’exécutable, pas le raccourci. Vous devez append le manifeste requirejs qui invite Windows à demander l’élévation.

Pour ce faire, sous Windows XP, vous devrez utiliser le verbe runas avec ShellExecute() pour s’exécuter en tant qu’utilisateur différent, mais cela supprimera toute possibilité d’accéder au profil local. Cela peut être fait à partir de votre exe quand il ne fonctionne pas avec un access administrateur complet.