Élévation programmatique des privilèges de processus dans Windows
Ce guide explique comment élever programmatiquement les privilèges de processus dans Windows, une étape nécessaire lors de l'exécution de tâches privilégiées comme l'installation de services avec InstallUtil.exe
. Nous explorerons deux méthodes: en utilisant le verbe runas
et en intégrant un manifeste d'application.
La méthode la plus simple consiste à utiliser la propriété Verb
de l'objet ProcessStartInfo
. Le réglage Verb
sur "Runas" invite la boîte de dialogue Contrôle du compte utilisateur (UAC), demandant l'autorisation de l'utilisateur pour élever le processus. Ceci est similaire à cliquer avec le bouton droit sur un exécutable et à sélectionner "Exécuter en tant qu'administrateur".
Cependant, si vous souhaitez éviter les invites UAC répétées, en particulier pendant les processus de longue durée, vous pouvez élever l'ensemble du processus hôte. Ceci est réalisé en créant et en incluant un fichier manifeste d'application (un manifeste UAC) qui spécifie le niveau d'exécution highestAvailable
. L'invite UAC n'apparaît qu'une seule fois au démarrage de l'application, et tous les processus d'enfants ultérieurs héritent de ces privilèges élevés.
Voici comment élever en utilisant le runas
verbe:
<code class="language-csharp">ProcessStartInfo startInfo = new ProcessStartInfo(m_strInstallUtil, strExePath); startInfo.UseShellExecute = true; startInfo.Verb = "runas"; System.Diagnostics.Process.Start(startInfo);</code>
Réglage UseShellExecute
pour true
et Verb
à "runas"
garantit que le processus s'exécute avec des autorisations élevées, sous réserve de l'approbation de l'UAC. L'alternative, en utilisant un manifeste d'application, nécessite plus de configuration mais évite les interactions UAC répétées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!