LoginSignup
7
11

More than 3 years have passed since last update.

【Python】PythonでPowerShellのコマンドを利用する

Last updated at Posted at 2021-05-28

はじめに

Windowsでより強い権限を持った操作をコマンドを利用して行う時はWindows PowerShellを利用する場合があるが、これはPythonで普段利用するsubprocessライブラリではサポートされていない。当記事では、PythonでWindows PowerShellのコマンドを利用する方法について簡単に解説する。

実装

PowerShellのコマンドは先ほども述べたように、subprocessでは利用できないので、ビルトインのos.systemを利用する。

os.system("powershell -Command 実行したいPowerShellコマンド")

このようにすることでPowerShellコマンドを実行することができる。具体的な例については下記で示している。

実装例1 - 日時の取得

現在時刻を取得するPowerShellコマンドを実行

os.system("powershell -Command Get-Date")
実行結果
2021年5月28日 19:44:54

実装例2 - タスク登録

Windowsのタスクスケジューラーにタスクを登録するPowerShellコマンドを実行

def register_task(task_name, batch_path):
    ps_cmd = f"schtasks /create /tn {task_name} /tr {batch_path} /sc onlogon /delay 0000:30 /rl highest"
    os.system(f"powershell -Command {ps_cmd}")

if __name__ == "__main__":
    register_task("test-task", r"C:\Users\~~~\~~~.bat")
実行結果
成功: スケジュール タスク "test-task" は正しく作成されました。

PowerShellコマンドの詳細については解説を省略するが、一応これで任意のバッチファイル(フルパス指定)をログオン時に起動するというタスクを登録することができる。

注意点

上記の例も含め、一部の権限が必要なPowerShellコマンドを実行する場合は、スクリプトを管理者権限で実行する必要がある。

7
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11