this Powershellスクリプトを使用して、Win7マシンの一部のバックアップを自動化したい。 Powershellターミナルから手動で実行すると、スクリプトはアドバタイズされたとおりに実行され、数秒後に終了します(これは小さなバックアップです)。
問題は、タスクスケジューラを使用してプロセスを自動化しようとしたときです。時が来たとき(またはタスクを手動で実行したとき)、スクリプトが実行され、バックアップが正しく実行されます。しかし、それが終了したことを知っていても、「Ready」には戻りません。毎回手動でタスクを停止する必要があります。
さて、タスクを再実行するときが来るのを待ちきれませんでしたが、「準備完了」ではないため、2回目は開始されないと思います。
それについて私は何ができますか?
更新1:
私が選択したアクションは「プログラムの開始」です。 「プログラム/スクリプト」ボックスに「powershell.exe」があり、引数としてスクリプト「* .ps1」ファイルへのパスがあります。
更新1:
タスクが「準備完了」に戻らないにもかかわらず、手動で開始すると、再び実行されることに気付きました。
BackupScript.ps1の最後の2行は
Write-Host "Press any key to close ..."
$x = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
これらをコメントアウト(または削除)すると、スケジュールされたジョブが完了して正常に終了するはずです。最後に一時停止が本当に必要な場合は、最後の行を this のようなものに置き換えて、タイムアウトをラップします(各スリープは1秒です)。
$counter = 0
while(!$Host.UI.RawUI.KeyAvailable -and ($counter++ -lt 600))
{
[Threading.Thread]::Sleep( 1000 )
}