PowerShell プロセスを常時監視し再起動するスクリプト
職場の共有パソコンにOUTLOOKを常時立ち上げておいて
OUTLOOKの振分設定で条件に合致したメールを担当者へ転送しています。
共用なので、ときどきOUTLOOKが終了していることがありメールが転送できていないことがある。
OUTLOOKが終了していたら自動的に起動させたい。
どうするか?と考えると、プロセスを常時監視すればいい。
スクリプトを書いてみました。
#監視するプロセス名
$procName = "OUTLOOK"
#実行ファイル OUTLOOKのパスはPCによって違う可能性がある
$execPath ="C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE"
#プロセスを取得
$p = Get-Process $procName -ErrorAction SilentlyContinue
if($p -eq $NULL){
#実行ファイルを起動
Write-Host "Start Process"
Invoke-Item $execPath
}
↑ このスクリプトをc:\tempフォルダにRestart-Outlook.ps1というファイル名で保存します。
タスクスケジューラにRestart-Outlook.ps1を自動実行するよう登録します。
トリガー
毎日 開始 10時~ 間隔1日
繰り返し間隔 15分
継続時間12時間
プログラム/スクリプト
powershell
引数の追加
-ExecutionPolicy Bypass -File c:\temp\Restart-Outlook.ps1
トリガーは「朝10時から15分毎に監視」するように設定してみました
ここはお好みで
タスクスケジューラへの登録はPowerShellでもできます。
下の記事をどうぞ
#PowerShell #タスクスケジューラ #タスク #自動化 #Windows #情シス #社内SE #プログラミング学習 #IT #プロセス管理