Maison  >  Article  >  développement back-end  >  Comment élever les applications Go aux privilèges d'administrateur sous Windows ?

Comment élever les applications Go aux privilèges d'administrateur sous Windows ?

DDD
DDDoriginal
2024-11-09 05:13:02382parcourir

How to Elevate Go Applications to Administrator Privileges on Windows?

Élever les privilèges d'administrateur sous Windows avec Go

Problème : L'exécution d'applications Windows nécessite souvent des privilèges administratifs, invitant les utilisateurs à cliquer avec le bouton droit et à sélectionner "Exécuter en tant qu'administrateur." Comment pouvons-nous contourner cette étape manuelle dans nos applications Go ?

Solution :

Pour automatiser l'élévation de privilèges, nous présentons une technique qui détecte si l'utilisateur actuel dispose d'un accès administrateur . Sinon, il redémarre l'application avec une invite de contrôle de compte d'utilisateur (UAC), permettant aux utilisateurs d'accorder des autorisations d'administrateur.

Voici un exemple d'implémentation :

package main

import (
    "fmt"
    "golang.org/x/sys/windows"
    "os"
    "syscall"
    "strings"
    "time"
)

func main() {
    // Check if we are running as administrator
    if !amAdmin() {
        runMeElevated()
        return
    }

    fmt.Println("Admin rights granted, proceed with your application")
    // ... Your administrator-privileged code here ...

    // This will wait 10 seconds to allow the program to execute and then exit.
    time.Sleep(10 * time.Second)
}

Explication :

  • amAdmin() : Vérifie si le processus actuel s'exécute en tant qu'administrateur en essayant d'ouvrir un lecteur de périphérique réservé.
  • runMeElevated () : S'il n'est pas administrateur, il lance l'exécutable actuel avec le verbe "runas", demandant l'élévation UAC.
  • Verbe et paramètres : "runas" est le verbe to exécutez le programme en tant qu'utilisateur différent. Les autres paramètres spécifient l'exécutable, les arguments et le répertoire de travail actuel.

Notes supplémentaires :

  • Cette méthode évite le besoin d'un fichier manifeste .
  • Cela fonctionne pour la plupart des outils de ligne de commande où des droits d'administrateur peuvent être nécessaires pour des fonctions spécifiques.
  • Pour plus de détails et des méthodes alternatives, reportez-vous à l'essentiel suivant : 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