簡體   English   中英

停止服務,運行批處理文件,然后啟動服務

[英]Stop services, run batch files, then start services

我必須停止多個服務,檢查服務是否正確停止,然后運行多個批處理文件。 批處理作業完成后,首先重新啟動已停止的服務。 我開始了以下腳本,但無法更進一步。

#Define Services
$service1 = 'StiSvc'
$service2 = 'AdobeARMservice'
$services = @(
  $service1,
  $service2
)

#Stop Services
Get-Service | 
  Where { $services -contains $_.Name } |
  Foreach {
    $_ | Stop-Service
  }

#Verify Services
Get-Service | 
  Where { $services -contains $_.Name } |
  Foreach {
    if ((Get-Service $_.Name).Status -eq "stopped") {
      Write-Host 'Service Stop Pass (0)'
    } else {
      Write-Host 'Service Stop Failed (1000)';
      exit '1000'
    }
  }

#Start batch
if ($services.Status -eq "Stopped") {
  Start-Process "cmd.exe" "/c C:\download\hello.bat"
} else {
  Start-Sleep -s 10
} 

以下應該工作:

$services = 'StiSvc', 'AdobeARMservice'

Stop-Service $services -ErrorAction Stop

& 'C:\download\hello.bat'
& 'C:\path\to\other.cmd'
#...

Start-Service $services

如果沒有,您需要提供有關究竟是什么失敗以及如何失敗的更多信息。 包括所有錯誤和狀態消息。

謝謝大家,我修改了腳本如下。 該腳本停止 2 個服務,當 2 個服務停止時,它會啟動批處理文件。

#Stop Services

Get-Service StiSvc, AdobeARMservice | Stop-Service

#Verify Services

if (((Get-Service StiSvc).Status -eq "stopped") -and 
((Get-Service AdobeARMservice).Status -eq "stopped"))

# Start batch

{Start-Process  "cmd.exe"  "/c C:\download\hello.bat"} 

我正在努力改進腳本。 我會盡快回到你身邊。 問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM