none
Get-Service後如何依照服務狀態執行下一個不同的動作指令 RRS feed

  • 問題

  • 請教各位大師

    如果今天透過Get-Service取得狀態,範例如下

    PS C:\Users\administrator.EXAMPLE> Get-Service icssvc
    Status   Name               DisplayName
    ------   ----               -----------
    Stopped  icssvc             Windows 行動熱點服務

    該如何取得Status下Stopped或是Running的值透過if執行不同的指令?

    再麻煩各位大師解惑

    2020年6月30日 上午 03:14

解答

  • 取得服務狀態 (Get-Service icssvc).status

    檢查服務,如果沒有執行就啟動服務

    $ServiceName = "icssvc"
    if ((Get-Service $ServiceName).status -eq 'stopped') {
        Write-Output "Start Service $ServiceName" 
        Start-Service $ServiceName 
    }
    else {
        Write-Output "Service $ServiceName is running"
    }
    
    

    • 已標示為解答 tommy5425769 2020年6月30日 上午 10:32
    2020年6月30日 上午 05:28

所有回覆

  • 取得服務狀態 (Get-Service icssvc).status

    檢查服務,如果沒有執行就啟動服務

    $ServiceName = "icssvc"
    if ((Get-Service $ServiceName).status -eq 'stopped') {
        Write-Output "Start Service $ServiceName" 
        Start-Service $ServiceName 
    }
    else {
        Write-Output "Service $ServiceName is running"
    }
    
    

    • 已標示為解答 tommy5425769 2020年6月30日 上午 10:32
    2020年6月30日 上午 05:28
  • 感謝指導,想再請教一下
    如果是透過Invoke-Command的方式取得遠端電腦的服務狀態,如下
    Invoke-Command -ComputerName server1 -ScriptBlock { Get-Service Dhcp }
    如果把這段放進去好像就沒辦法正確判斷了,他都會輸出Start Service

    $ServiceName = "Dhcp"
    if ((Invoke-Command -ComputerName server1 -ScriptBlock { Get-Service $ServiceName } ).status -eq 'stopped') {
        Write-Output "Start Service $ServiceName" 
        Start-Service $ServiceName 
    }
    else {
        Write-Output "Service $ServiceName is running"
    }

    可以指導一下哪邊需要修正嗎??
    再麻煩大師指導
    2020年6月30日 上午 07:16
  • Get-Service 可以用 -ComputerName 指定遠端電腦,不用把Get-Service包進  Invoke-Command 裡面

    $ServiceName = "dhcp"
    if ((Get-Service -ComputerName server1 $ServiceName).status -eq 'stopped') {
        Write-Output "Start Service $ServiceName" 
        Start-Service $ServiceName 
    }
    else {
        Write-Output "Service $ServiceName is running"
    }
    2020年7月10日 上午 07:55