Maison >développement back-end >Golang >Comment demander automatiquement les autorisations d'administrateur dans Go sous Windows ?

Comment demander automatiquement les autorisations d'administrateur dans Go sous Windows ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-08 13:57:02706parcourir

How to Automatically Request Administrator Permissions in Go on Windows?

Gérer l'élévation avec Go sous Windows : un guide étape par étape

Énoncé du problème

De nombreuses applications nécessitent des privilèges d'administrateur pour certaines opérations. Lorsque les utilisateurs exécutent de telles applications sans élévation, ils rencontrent des erreurs d'accès refusé. La tâche à accomplir est de trouver une technique permettant de demander automatiquement des autorisations administratives sans que les utilisateurs effectuent explicitement l'action "Exécuter en tant qu'administrateur".

Solution

Dans ce blog, nous explorons une technique utilisée pour déterminez si le processus actuel s'exécute avec les privilèges d'administrateur et, sinon, relancez le processus avec une invite UAC. Cette solution élégante peut être utilisée dans des outils de ligne de commande où la plupart des opérations ne nécessitent pas de droits élevés. Seules les fonctions telles que l'installation et la désinstallation, qui modifient le registre ou installent des fichiers dans des répertoires protégés, déclenchent la demande d'élévation.

Le code Go fourni utilise l'approche suivante :

  1. Lorsque le code Go actuel Le processus ne dispose pas des privilèges d'administrateur, le programme se relance à l'aide de la fonction ShellExecute avec le verbe runas.
  2. La fonction amAdmin identifie si le processus s'exécute en tant que administrateur en essayant d'ouvrir le fichier de périphérique \.PHYSICALDRIVE0. Si l'opération d'ouverture réussit, le programme suppose qu'il dispose d'autorisations élevées.

Implémentation

Le code fourni dans la réponse présente les détails de mise en œuvre. La fonction runMeElevated effectue la relance avec l'élévation UAC, tandis que la fonction amAdmin vérifie le statut d'administrateur.

Lectures complémentaires

Pour une explication plus approfondie de la technique, reportez-vous à ce qui suit ressource :

  • https://gist.github.com/jerblack/d0eb182cc5a1c1d92d92a4c4fcc416c6

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!

Déclaration:
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