Maison > développement back-end > Golang > 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
Libérer: 2024-11-09 05:13:02
original
543 Les gens l'ont consulté

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

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal