【PowerShell】タスクスケジューラでスクリプト実行しようとしてハマったときの対処法

【PowerShell】タスクスケジューラでスクリプト実行しようとしてハマったときの対処法

はじめに

コジマです。

業務で自動化できそうな作業があったので
Powershellでスクリプト組んでタスクスケジューラで定期的に実行しよう。
と思ったわけです。

普通のWindowsバッチで事足りればいいんですけど。
そうじゃないときはPowerShellが何とかしてくれる。と思いながら自動化に勤しんでおりますw

タスクスケジューラの沼にハマっちゃったんですよね。
タスクスケジューラでスクリプト実行するのは割と一筋縄ではいかないんです。

実際にどうするのか

タスクスケジューラの設定

タスクスケジューラを開きます。

自分の設定したタスクをダブルクリックして[操作]タブを開いて、スクリプト実行する操作を選択して
[編集]ボタンを押してください。

以下の点について確認します。

  • [プログラム/スクリプト]を[C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe]とフルパスにしている
  • [引数の追加]を[-Command “.\実行ファイル.ps1”]としている
  • [開始]をスクリプトの存在するパスを指定している

上記のように設定しないとpowershell動きません。

2019/10/03追記
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-core-60?view=powershell-6

PowerShell6.0以降より

  • バイナリ名がpowershell.exeからpwsh.exeに変更
  • 位置指定パラメータが-Commandから-Fileに変更

上記の変更があります。
もし本記事記載の手順でうまくいかない場合、上記の変更に沿って読み替えた上で
再度試してみてください。

権限の設定

PowerShellを管理者で実行します。
コンソール画面が起動したら[Get-ExecutionPolicy]を実行してください。
[Restricted]が表示されていたら対応が必要です。

[Set-ExecutionPolicy RemoteSigned]を実行してください。

(※)各種権限の詳細が以下のサイトに記載があります。お好みの権限で設定してください。
ここではRemoteSignedとしました。
https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-6#required-parameters

以上で実行できるようになります。

さいごに

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

以上、コジマでした。


PowerShellカテゴリの最新記事