管理者権限が必要な時に困る
普通のexeとかbatとか諸々の実行できるファイルであれば右クリックして管理者権限で実行とか出来るわけですがPythonのスクリプトはあくまで書類ですからそんなことできません。
だからといってPython自体に細工して管理者権限なんか付与した日には何か動くたびに確認画面が出てきて不安が止まりません。
そもそもの管理者権限が必要なプログラムなんてものはそれが必要なのかどうなのか自体を疑う必要があったりもしますが、それでもどうしてもどうにかしたい場合というのはあるものですので…。
管理者権限に昇格してコマンドを実行する
あとから調べたらそこそこ出てきたのですが、一応備忘録的に書いておこうと思いました。
runas.py
from ctypes import windll
def runas():
windll.shell32.ShellExecuteW(
None,
"runas",
"python", # コンソール出したくないならpythonw
"hoge.py", # 実行したいスクリプト
None,
0
)
if __name__ == "__main__":
runas()
こんなスクリプトを用意します、普段実行するプログラムをこのスクリプトで実行させるというイメージです。
このスクリプトは実行されるとshellをrunas(管理者権限)で実行、この場合はpython hoge.py
を管理者権限で実行します。
個人的にはこれで相当助かったので誰かが助かればと思い共有しておきます。