Maison > développement back-end > Tutoriel Python > Comment exécuter un script Python avec des privilèges élevés sous Windows ?

Comment exécuter un script Python avec des privilèges élevés sous Windows ?

Barbara Streisand
Libérer: 2024-12-03 17:52:10
original
543 Les gens l'ont consulté

How to Run a Python Script with Elevated Privileges on Windows?

Comment exécuter un script avec des privilèges élevés sous Windows

De nombreuses applications nécessitent des privilèges élevés pour accéder à des ressources spécifiques ou effectuer des tâches privilégiées. Sous Windows, l'UAC (User Account Control) protège le système d'exploitation et les données utilisateur en empêchant les modifications non autorisées. Cet article explique comment exécuter un script avec des privilèges élevés sous Windows.

Solution utilisant les fonctions 'isUserAdmin' et 'runAsAdmin'

En réponse à l'extrait de code fourni et problèmes ultérieurs, une solution plus robuste est disponible grâce aux modules développés par Preston Landers. Le module définit deux fonctions clés : isUserAdmin et runAsAdmin.

isUserAdmin
Cette fonction vérifie si l'utilisateur actuel possède des privilèges administratifs.

runAsAdmin
Cette fonction élève les privilèges du script en demandant à l'utilisateur l'UAC autorisation.

Exemple d'utilisation

import admin

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

Ce fragment de code vérifie si l'utilisateur est un administrateur. Sinon, il demande une confirmation UAC et redémarre le script avec des privilèges élevés.

Version améliorée utilisant le package 'pyuac'

Depuis la création du script original, l'auteur a mis à jour et publié sous la forme d'un package Python appelé 'pyuac' :

Installation :

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

Exemple d'utilisation utilisant pyuac

import pyuac

def main():
    print("Do admin stuff here.")

if __name__ == "__main__":
    if not pyuac.isUserAdmin():
        print("Re-launching as admin!")
        pyuac.runAsAdmin()
    else:
        main()
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