Python スクリプトが管理者権限で実行されていることを確認するクロスプラットフォームの方法はありますか? 残念ながら、os.getuid()
は UNIX 専用であり、Windows では使用できません。
18089 次
5 に答える
57
import ctypes, os
try:
is_admin = os.getuid() == 0
except AttributeError:
is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0
print is_admin
于 2009-06-22T11:22:56.333 に答える
3
スクリプトが実行されているプラットフォームを(を使用してsys.platform
)確認し、それに基づいてテストを実行することをお勧めします。たとえば、別のプラットフォーム固有のモジュールからいくつかのhasAdminRights関数をインポートします。
Windowsでは、Windows\System32
を使用して書き込み可能かどうかを確認できますがos.access
、おそらくpywin32を使用して、システムの実際の「Windows」フォルダパスを取得することを忘れないでください。1つをハードコーディングしないでください。
于 2009-06-22T10:47:33.863 に答える
3
管理者権限が必要なことは何でも試してみて、失敗を確認してください。
これはいくつかの場合にしか機能しませんが、何をしようとしていますか?
于 2009-06-22T10:25:50.707 に答える
1
管理者グループのメンバーシップ (ドメイン/ローカル/エンタープライズ) は 1 つのものです..
特にアプリがインタラクティブに使用されている場合は、ブランケット権限を使用しないようにアプリケーションを調整し、きめの細かい権限を設定することをお勧めします。
特定の名前付き権限 (se_shutdown、se_restore など) をテストすると、ファイル権限の方が優れており、診断が容易になります。
于 2009-06-24T14:07:57.157 に答える