ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

关于强制停止服务的问题

2022-08-02 21:33:35  阅读:227  来源: 互联网

标签:服务 service Get Winrm 停止 kill 强制


强制停止服务

当停止某个服务的时候,因为某些为止的原因,服务的状态会一直处于STOP_PENDING,此时,就需要强制停止该服务

杀死服务对应的进程

用中文在百度搜索“杀死服务”,以及用英文在google搜索“kill service”,基本原理都一样:

找到目标服务的进程ID---PID,然后杀死即可

CMD命令

sc queryex servicename
taskkill /f /pid [PID]

PowerShell

$processId = Get-CimInstance -Class win32_service | ?{$_.Name -eq "YOURSERVICENAME"} | select -ExpandProperty ProcessId
kill $processId

如果我们要杀的是系统服务呢?

在我们的场景中,Winrm服务因为某些原因无法停止,于是我们就copy-paste以上代码去处理,结果引发了新的问题---无法访问网络路径。
简单来说,本来同一个域的server,是可以通过SMB协议访问,访问路径类似这样:\ServerName\C$\Windows。结果在杀死Winrm服务之后,无法访问了。

为什么呢?难道误杀了不成?
执行以下代码用于验证,是否其他服务也收到影响

Get-Service

"before kill"
$winrmSvc = Get-CimInstance -ClassName win32_service | ?{$_.Name -eq "winrm"}
$winrmPID = $winrmSvc.ProcessId
Stop-Process -Id $winrmPID -Force 
"after kill"    

Get-Service

结果:

WHAT?
除了Winrm服务停止之后,还有其他3个服务也被停止了。
这3个服务看样子并没有与Winrm有啥关系。
影响我们访问网络路径的服务是LanmanWorkstation(试的)
启动该服务后,另外2个服务也自动启动了。

为什么会停止其他服务?

Winrm服务和LanmanWorkstation服务有啥关系?
经过一番查证,发现二者关系就如卡巴斯基和巴基斯坦的关系。

点开瞧瞧

WHAT?
为啥binPath一毛一样?参数还一样?
是不是就是因为他们是同一个进程,所以就给一并杀了?

binPath一毛一样的还有其他服务,不管进程执行的Command Line一样,ProcessID还一样!

多个service,共用一个进程(ID)!!!

为啥?问就是为了节约资源

Svchost.exe (Service Host, or SvcHost) is a system process that can host from one or more Windows services in the Windows NT family of operating systems.[1] Svchost is essential in the implementation of shared service processes, where a number of services can share a process in order to reduce resource consumption.
https://en.wikipedia.org/wiki/Svchost.exe

经过验证,发现在客户机上(win10这样的)没有这样的情况

而在服务器上(windows server 2012 R2这样的)是共享一个进程的

解决办法

  1. 重启
  2. 杀掉共享进程前,保存其他running的service,然后重启这些service(造成波动)
  3. 待研究

标签:服务,service,Get,Winrm,停止,kill,强制
来源: https://www.cnblogs.com/talentzemin/p/16545243.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有