[英]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.