Maison > développement back-end > Tutoriel Python > Comment mon script Python peut-il demander une élévation UAC pour les tâches privilégiées ?

Comment mon script Python peut-il demander une élévation UAC pour les tâches privilégiées ?

DDD
Libérer: 2024-11-24 01:33:09
original
761 Les gens l'ont consulté

How Can My Python Script Request UAC Elevation for Privileged Tasks?

Demande d'élévation UAC à partir de scripts Python

Dans des environnements comme Vista, où le contrôle de compte d'utilisateur (UAC) restreint les actions du système de fichiers, exécutant Python les scripts d'une fenêtre d'invite de commande standard peuvent gêner des tâches telles que la copie de fichiers.

Pour résoudre ce problème, envisagez l'approche suivante qui peut être intégrée dans votre script Python :

  1. Utilisez le module ctypes pour vérifier si le script s'exécute avec des privilèges élevés :
import ctypes

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False
Copier après la connexion
  1. Basé sur le résultat de is_admin( ), procédez comme suit :
  • Si élevé :Procédez avec la fonctionnalité principale de votre script.
  • S'il n'est pas élevé :
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
Copier après la connexion

Ce code réexécutera le script avec les droits d'administrateur, comme s'il était lancé à partir de l'option "Exécuter en tant qu'administrateur" du menu contextuel.

Avantages de cette approche include :

  • Aucune dépendance aux bibliothèques externes.
  • Compatibilité avec Python 2 et 3.
  • Pas besoin de modifier les ressources du fichier ou de créer un fichier manifeste.
  • L'exécution n'a lieu qu'une seule fois (le code situé sous l'instruction if/else est ignoré après élévation).

La documentation sous-jacente de l'appel ShellExecute est disponible pour référence ultérieure. Cette méthode fournit une solution simple et efficace pour demander une élévation UAC à partir de scripts Python, rationalisant ainsi les tâches privilégié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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal