簡體   English   中英

使用PowerShell停止遠程服務

[英]Stop remote service using PowerShell

我有一個腳本,可以通過WMI停止遠程服務:

(get-service -ComputerName $server_ip -Name $service).Stop()

我想嘗試五次后再強制服務。 我已經建立了一個計數器,但是強制停止的命令是什么?

如果啟用了winRM,則可以使用以下命令:

Invoke-Command -ComputerName server1 -ScriptBlock {
    Stop-Service $args[0] -Force } -ArgumentList $service

如果通過“強制停止”來表示您要強制終止(即終止)服務進程,則可以嘗試通過其PID終止該進程:

$server  = '1.2.3.4'
$service = 'name'

Invoke-Command -Computer $server -ScriptBlock {
  param($svc)

  $Error.Clear()

  1..5 | % {
    Stop-Service -Name $svc
    if ($?) { break }  # exit from loop if previous command succeeded
  }

  if ($Error.Count -eq 5) {
    $pid = (Get-WmiObject Win32_Service -Filter "Name='$svc'").ProcessId
    (Get-Process -Id $pid).Kill()
  }
} -ArgumentList $service

通過Invoke-Command運行代碼是為了避免多個遠程連接。

即使對於已設置NOT_STOPPABLE標志的服務,這也應該起作用。

暫無
暫無

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

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