Maison > développement back-end > C++ > Comment puis-je élever par programme les privilèges de processus dans Windows?

Comment puis-je élever par programme les privilèges de processus dans Windows?

Barbara Streisand
Libérer: 2025-01-31 09:56:15
original
267 Les gens l'ont consulté

How Can I Programmatically Elevate Process Privileges in Windows?

É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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal