function ServiceRestart
{
Param
(
$ErrorLog,
$Services,
$MaxSize
)
$Time = Get-Date -Format 'yyyy:MM:dd HH:mm:ss'
$Result = (Get-Item $ErrorLog).length
if($Result -gt $MaxSize)
{
Clear-Content $ErrorLog
}
Try
{
Foreach($Service in $Services)
{
Restart-Service -DisplayName $Service -ErrorAction Stop
}
} Catch
{
"ERROR: $Service could not be restarted $Time" | Add-Content $ErrorLog
}
}
ServiceRestart -ErrorLog -Services -MaxSize
私は、タスクスケジューラ
から、次のパラメータを渡す必要がありサービスを
- MaxSizeの私は現在、この
ように私のタスクスケジューラを設定している
パスPowerShellのパラメータは
プログラム/スクリプト:C:¥Windows¥System32¥WindowsPowerShell¥v1.0¥powershell.exe
引数を入力してください(オプション):
- コマンド "& \ ServerName \ C $ \ Users ***** \ Documents \ Scripts \ Scheduled-ServiceRestart.ps1
-ErrorLog 'ServerName \ C $ \ Users ***** \ Documents \ log \ ScriptErrors.txt'
- サービス 'foo1'、 'foo2'
-MaxSize '5MB' "
スケジュールされたタスクを実行しても、何も起こらない場合があります。
-NoProfile -ExecutionPolicy Unrestricted -File 'Scheduled-ServiceRestartを使用しています。「サービス1」、「サービス2」-MaxSize「500MB」「エラーが発生しました(0xFFFD0000)。私はこれを実行しています。 @Bill_Stewart –
スクリプトをローカルサーバーにコピーします。 –