臨時碰到這個需求:偵測某 Windows 服務是否在執行中,若沒有,就啟動該服務。網路上隨便都可以找到一堆範例,就順便學了點 PowerShell。
指令如下:
將以上內容儲存成一個副檔名為 .ps1 的檔案,例如 C:\Scripts\StartMyService.ps1。然後執行下列命令:
PowerShell -ExecutionPolicy ByPass -File C:\Scripts\StartMyService.ps1"
試成功之後,把它放進 Windows 排程,每隔幾分鐘跑一次就行了。
啟動遠端電腦的 Windows 服務會稍微麻煩一點,可以搭配 WMI 或 PowerShell 本身提供的 Invoke-Command。要注意的是,如欲使用 Invoke-Command 來執行遠端電腦的 PowerShell 命令,該電腦必須啟用 Remote Commands。
指令如下:
function ForceStartService($ServiceName) { $aService = Get-Service -Name $ServiceName if ($aService) { "Found service" if ($aService.Status -ne "Running") { "Not running, now force to start the service..." Start-Service $ServiceName } } } ForceStartService -ServiceName "你的 Windows 服務名稱"
將以上內容儲存成一個副檔名為 .ps1 的檔案,例如 C:\Scripts\StartMyService.ps1。然後執行下列命令:
PowerShell -ExecutionPolicy ByPass -File C:\Scripts\StartMyService.ps1"
試成功之後,把它放進 Windows 排程,每隔幾分鐘跑一次就行了。
啟動遠端電腦的 Windows 服務會稍微麻煩一點,可以搭配 WMI 或 PowerShell 本身提供的 Invoke-Command。要注意的是,如欲使用 Invoke-Command 來執行遠端電腦的 PowerShell 命令,該電腦必須啟用 Remote Commands。
沒有留言: