バッチファイルで自分自身をタスクスケジューラに登録して再起動後も実行させようと思っても「コンピューターを AC電源で使用している場合のみタスクを開始する(P)」という項目がONの場合はノートPCが電源に接続されていない状態だとタスクを実行してくれない。
しかし、タスクスケジューラを操作できる schtasks
コマンドで変更可能な項目は限られており、この項目もコマンドでは変更不可能なためどうしたものかと調べていたらxmlを直接操作することで変更できたのでご紹介。
バッテリー駆動でもタスクを実行させる関数
function disableOnlyRunAc-Task($taskName){
$taskXml = [xml](schtasks /query /tn $taskName /xml)
$taskXml.Task.Settings.DisallowStartIfOnBatteries = "false"
$taskXml.Save("C:\tempTask.xml")
schtasks /delete /tn $taskName /f
schtasks /create /tn $taskName /xml "C:\tempTask.xml"
Remove-Item "C:\tempTask.xml"
}
disableOnlyRunAc-Task "<タスク名>"
※管理者権限での実行が必要
※xmlの操作を楽にするためにPowerShellを使用
続きを読む