Maison > développement back-end > Tutoriel Python > Comment puis-je exécuter des scripts Python avec des privilèges administratifs sous Windows ?

Comment puis-je exécuter des scripts Python avec des privilèges administratifs sous Windows ?

Linda Hamilton
Libérer: 2024-12-10 14:15:14
original
839 Les gens l'ont consulté

How Can I Run Python Scripts with Administrative Privileges on Windows?

Accorder des privilèges administratifs aux scripts Python sous Windows

L'exécution de tâches nécessitant des privilèges administratifs est nécessaire pour certaines applications. Dans ce contexte, un problème courant survient lorsque l’on tente d’exécuter des scripts Python avec des privilèges élevés. Lors de la recherche de solutions, une référence fréquemment liée conduit les utilisateurs à une question Stack Overflow traitant de l'élévation de l'UAC à partir des scripts Python.

Malgré le suivi de l'extrait de code fourni dans la question liée, de nombreux utilisateurs rencontrent des problèmes d'exécution. Cet article vise à résoudre ces difficultés et à fournir une solution complète pour exécuter des scripts avec des privilèges élevés sous Windows.

Solution mise à jour (février 2023)

La réponse originale ci-dessous a a connu des progrès significatifs et est désormais accessible sous la forme d'un module Python nommé "pyuac". Il peut être installé via PyPi :

pip install pyuac
pip install pypiwin32
Copier après la connexion

Exemples d'utilisation de Pyuac :

Utilisation directe :

import pyuac

def main():
    print("Do stuff here that requires being run as an admin.")
    # The window will disappear as soon as the program exits!
    input("Press enter to close the window. >")

if __name__ == "__main__":
    if not pyuac.isUserAdmin():
        print("Re-launching as admin!")
        pyuac.runAsAdmin()
    else:        
        main()  # Already an admin here.
Copier après la connexion

Utilisation du décorateur :

from pyuac import main_requires_admin

@main_requires_admin
def main():
    print("Do stuff here that requires being run as an admin.")
    # The window will disappear as soon as the program exits!
    input("Press enter to close the window. >")

if __name__ == "__main__":
    main()
Copier après la connexion

Réponse originale (2010)

Dans En 2010, Preston Landers a créé un module qui simplifiait la gestion de l'UAC sous Windows. En l'utilisant, vous pouvez facilement déterminer si l'utilisateur actuel est un administrateur et demander une élévation UAC si nécessaire. Son exemple d'utilisation :

import admin

if not admin.isUserAdmin():
    admin.runAsAdmin()
Copier après la connexion

Implémentation du module :

# See module code provided in the answer text
Copier après la connexion

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