| | 7 | 1. 注意:Memurai因為是development版本,所以超過240小時,就會自動退出,為了解決這個問題,需要在定義一個schedule,每週日重新啟動服務 |
| | 8 | {{{ |
| | 9 | # 重新啟動服務的powerscript |
| | 10 | # 定義服務名稱 |
| | 11 | $ServiceName = "Memurai" |
| | 12 | |
| | 13 | # 檢查服務是否存在 |
| | 14 | if (Get-Service $ServiceName -ErrorAction SilentlyContinue) { |
| | 15 | Write-Host "正在重新啟動 $ServiceName 服務..." -ForegroundColor Cyan |
| | 16 | |
| | 17 | # 重新啟動服務 |
| | 18 | Restart-Service -Name $ServiceName -Force |
| | 19 | |
| | 20 | Write-Host "$ServiceName 已於 $(Get-Date) 成功重新啟動。" -ForegroundColor Green |
| | 21 | } else { |
| | 22 | Write-Warning "找不到名為 $ServiceName 的服務,請確認名稱是否正確。" |
| | 23 | } |
| | 24 | |
| | 25 | |
| | 26 | # 註冊scheduler |
| | 27 | # 定義腳本路徑(請確保路徑正確) |
| | 28 | $ScriptPath = "C:\Program Files\Memurai\Restart.ps1" |
| | 29 | |
| | 30 | # 定義觸發器(每週日 凌晨 3 點) |
| | 31 | $Trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 3am |
| | 32 | |
| | 33 | # 定義執行動作 |
| | 34 | # -ExecutionPolicy Bypass 是為了確保腳本可以順利執行 |
| | 35 | $Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File `"$ScriptPath`"" |
| | 36 | |
| | 37 | # 建立並註冊任務(使用 SYSTEM 帳戶執行,確保有權限重啟服務) |
| | 38 | Register-ScheduledTask -TaskName "RestartMemuraiWeekly" -Trigger $Trigger -Action $Action -User "SYSTEM" -RunLevel Highest -Force |
| | 39 | |
| | 40 | Write-Host "排程任務已成功建立!Memurai 將在每週日凌晨 03:00 重啟。" -ForegroundColor Green |
| | 41 | }}} |