Granting Administrative Privileges to Python Scripts on Windows
Executing tasks requiring administrative privileges is necessary for certain applications. In this context, a common issue arises when trying to run Python scripts with elevated privileges. While seeking solutions, a frequently linked reference leads users to a Stack Overflow question addressing UAC elevation from within Python scripts.
Despite following the code snippet provided in the linked question, many users encounter issues with its execution. This article aims to address these difficulties and provide a comprehensive solution to execute scripts with elevated privileges on Windows.
Updated Solution (February 2023)
The original answer below has seen significant advancements and is now accessible as a Python module named "pyuac." It can be installed via PyPi:
pip install pyuac pip install pypiwin32
Pyuac usage examples:
Direct usage:
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.
Decorator usage:
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()
Original Answer (2010)
In 2010, Preston Landers created a module that simplified UAC handling on Windows. Using it, you can readily determine if the current user is an administrator and request UAC elevation if required. Its usage example:
import admin if not admin.isUserAdmin(): admin.runAsAdmin()
Module Implementation:
# See module code provided in the answer text
The above is the detailed content of How Can I Run Python Scripts with Administrative Privileges on Windows?. For more information, please follow other related articles on the PHP Chinese website!