ハマりポイント
Windowsの一部環境では、GUIで「1分毎に実行するタスク」が登録できないようです。
今回やろうとしたのは、タスクスケジューラで1分毎にPowerShellを実行するというものです。GUIのプルダウンでトリガーの繰り返し間隔を 5分間 に設定すると、そのままタスクを保存できます。しかし、繰り返し間隔を 1分間 に書き換えると
タスク ★タスク名★ でエラーが発生しました。
エラーメッセージ:1つ以上の指定された引数が有効ではありません。
というエラーが出て、保存できなくなります。
PowerShellでタスクスケジューラの設定方法を知ったので、残しておきます。
解決策
タスクを作成するPowerShellです。
$User = "★ユーザー名★"
$Password = Read-Host "パスワードを入力して下さい" -AsSecureString
$Plain = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
[Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password)
)
schtasks /create `
/tn "★タスク名★" `
/tr "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -NoProfile -File ""★PowerShellのパス★""" `
/sc minute `
/mo 1 `
/ru $User `
/rp $Plain `
/rl highest `
/f
- ★ユーザー名★
- タスクを実行するユーザーを設定して下さい
- ★タスク名★
- 自由に設定して下さい
- ★PowerShellのパス★
- 実行したいPowerShellのパス
- C:\FolderName\PowerShell.ps1 (サンプル)
- コンソールは
管理者権限での起動を推奨します
上記のPowerShellを貼り付けると、★ユーザー名★ のパスワード入力を求められます。
次のメッセージが表示されれば、作成成功です。
成功: スケジュール タスク "★タスク名★" は正しく作成されました。
まとめ
GUIだとプルダウンメニューの 5分間 が、設定できる間隔の最小値になりますが、PowerShell経由 schtasks コマンドでタスクを登録すると、1分間隔も設定できるということでした。
試した環境
Windows10 2004
おまけ
タスクの内容を確認
schtasks /query /tn "タスク名" /v /fo list
タスクの削除
schtasks /delete /tn "タスク名" /f