Ou comment lancer Windows Explorer en tant qu'administrateur
Ce cas de figure peut se présenter quand un administrateur se connecte sur un serveur où l'UAC est actif et souhaite, pour créer des fichiers dans les dossiers protégés de Windows par exemple, exécuter une instance de l'explorateur avec un contexte administrateur.

 

Sans la case "launch folder windows in a separate process" cochée dans les propriétés des dossiers

Sans fenêtre d'explorateur ouverte, on trouve un processus explorer.exe (PID 1656) qui tourne sans privilège, c'est le shell de l'utilisateur, son bureau.

On lance un explorateur, sans demander l'élévation de privilège, aucun nouveau processus n'est créé et, logiquement, les actions d'administration ne sont pas possibles.

On lance un explorateur, en demandant l'élévation de privilège, aucun nouveau processus n'est créé non plus et, logiquement, les actions d'administration ne sont pas possibles.

 

Avec la case "launch folder windows in a separate process" cochée

Sans fenêtre d'explorateur ouverte, on trouve un processus explorer (PID 216) qui tourne sans privilège, c'est le shell de l'utilisateur, son bureau.

On lance un explorateur, sans demander l'élévation de privilège, un nouveau processus est créé (PID 2432, fils de 216) et, logiquement, les actions d'administration ne sont pas possibles

On le ferme et lance un explorateur, en demandant l'élévation de privilège, un nouveau processus est créé (PID 2804, pas de processus père) et, logiquement, les actions d'administration sont possibles

On le ferme

On lance un explorateur, sans demander l'élévation de privilège (PID 3004, fils de 216, pas d'action d'administration possible) puis on lance un second explorateur, en demandant l'élévation de privilège. Aucun processus n'est créé pour ce deuxième explorateur et aucune action d'administration n'est possible.

On ferme des ceux explorateurs et effectue l'opération inverse :

On lance un premier explorateur avec élévation de privilège (PID 1100, pas de parent, actions d'administrations possibles) puis un second explorateur sans demander l'élévation de privilège. Aucun nouveau processus n'est créé pour ce deuxième explorateur et les deux permettent de réaliser des actions d'administration.

 

Plusieurs solutions de contournement existent

  • Forcer par GPO (Group Policy Prefernce ou un adm personnalisé), l'activation de " launch folder windows in a separate process"
  • Utiliser Internet explorer comme explorateur.
  • Démarrer Notepad.exe en tant qu'administrateur et sauvegarder le fichier directement dans le dossier souhaité.

 

Tout est très bien documenté dans le blog de Aaron Margosis (très bonne source d'information sur sur UAC) :

Aaron Margosis' "Non-Admin" WebLog - RunAs with Explorer
http://blogs.msdn.com/aaron_margosis/archive/2004/07/07/175488.aspx

Mots clés Technorati : ,,

Cyrille de Pardieu