見出し画像

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 #プロセス管理


いいなと思ったら応援しよう!