ホームページ >バックエンド開発 >Python チュートリアル >Python スクリプトで UAC 昇格をリクエストおよび検出するにはどうすればよいですか?

Python スクリプトで UAC 昇格をリクエストおよび検出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-25 03:55:15582ブラウズ

How Can I Request and Detect UAC Elevation in a Python Script?

Python スクリプトからの UAC 昇格要求と検出

Python スクリプトから Windows Vista 上のファイルをコピーするには、ユーザーの昇格を行う必要があります。ユーザー アカウント制御 (UAC) をバイパスする権限。これを実現するアクセス可能なメソッドは次のとおりです。

UAC 昇格リクエスト:

import ctypes, sys

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

if not is_admin():
    # Re-run the program with admin rights
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)

このコードは、スクリプトが昇格された特権で実行されているかどうかを確認します。そうでない場合は、管理者権限でスクリプトが再起動されます。

UAC 検出:

UAC 昇格の要求が実行できない場合は、スクリプトが昇格されているかどうかを検出できます。 :

if is_admin():
    # Code that requires elevated privileges
else:
    print("Error: Script must be run with elevated privileges.")
    sys.exit()

このアプローチにより、高度の欠如を適切に処理したり、表示したりすることができます。ユーザーへの警告メッセージ。

提案された方法の利点:

  • 標準ライブラリ モジュール (ctypes および sys) を利用し、外部ライブラリの必要性を排除します。 .
  • Python 2 と Python 2 の両方と互換性があります。 3.
  • ファイル リソースの変更やマニフェスト ファイルの作成は必要ありません。
  • 必要な場合にのみコードを実行することで、スクリプトの複数実行を防ぎます。
  • API 呼び出しを使用してエラー処理を可能にします。
  • 生成されたオブジェクトの表示を柔軟にカスタマイズできます。 process.

詳細については、ShellExecute API 呼び出しのドキュメントを参照してください。

以上がPython スクリプトで UAC 昇格をリクエストおよび検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。