我有几个旧服务,我想完全卸载。 我怎样才能做到这一点?
像这样使用SC命令(您需要在命令提示符下执行本文中的命令):
1 2
| SC STOP shortservicename
SC DELETE shortservicename |
注意:您需要以管理员身份运行命令提示符,不仅要以管理员身份登录,还要具有管理权限。如果出现以上错误,提示您没有必要的访问权来停止和/或删除服务,请以管理员身份运行命令提示符。您可以通过在开始菜单上搜索命令提示符,然后右键单击并选择"以管理员身份运行"来执行此操作。给PowerShell用户的注意事项:sc别名为set-content。因此,sc delete service实际上将创建一个名为delete的文件,其内容为service。要在Powershell中执行此操作,请改用sc.exe delete service
如果需要找到服务的简短服务名称,请使用以下命令来生成一个文本文件,其中包含服务及其状态的列表:
1
| SC QUERY state= all >"C:\Service List.txt" |
有关更简洁的列表,请执行以下命令:
1
| SC QUERY state= all | FIND"_NAME" |
简短服务名称将列在显示名称的正上方,如下所示:
1 2
| SERVICE_NAME: MyService
DISPLAY_NAME: My Special Service |
因此要删除该服务:
1 2
| SC STOP MyService
SC DELETE MyService |
单击开始|运行并在"打开:"行中键入regedit。单击
导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
向下滚动左窗格,找到服务名称,右键单击它,然后选择"删除"。
重新启动系统。
使用services.msc或(开始>控制面板>管理工具>服务)查找有问题的服务。双击以查看服务名称和可执行文件的路径。
检查exe版本信息以获取有关服务所有者的线索,并在可能的情况下使用"添加/删除程序"进行干净卸载。
在命令提示符下失败:
1 2
| sc stop servicexyz
sc delete servicexyz |
无需重新启动。
以管理员身份在cmd上运行命令,否则会出现此错误:-
openservice failed 5 access is denied
我们可以通过两种不同的方式来做到这一点
通过注册表删除Windows服务
如果您知道正确的路径,则很容易从注册表中删除服务。这是我的方法:
运行Regedit或Regedt32
转到注册表项" HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet /服务"
查找要删除的服务,然后将其删除。您可以查看这些键以了解该服务正在使用哪些文件,也可以将其删除(如有必要)。
通过命令窗口删除Windows服务
或者,您也可以使用命令提示符并使用以下命令删除服务:
sc删除
您也可以使用以下命令创建服务
sc创建" MorganTechService" binpath =" C: Program Files MorganTechSPace myservice.exe"
注意:您可能必须重新引导系统才能在服务管理器中更新列表。
如果您使用Windows Vista或更高版本,请以管理员身份从命令提示符运行此命令:
1
| sc delete [your service name as shown in service.msc e.g moneytransfer] |
例如:sc delete moneytransfer
删除文件夹C:\Program Files\BBRTL\moneytransfer\
查找转帐注册表项并将其删除:
1 2 3 4 5 6 7
| HKEY_CLASSES_ROOT\Installer\Products\
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\
HKEY_LOCAL_MACHINE\System\CurrentControlSet002\Services\
HKEY_LOCAL_MACHINE\System\CurrentControlSet002\Services\EventLog\
HKEY_LOCAL_MACHINE\Software\Classes\Installer\Assemblies\ [remove .exe references]
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Folders |
这些步骤已经在Windows XP,Windows 7,Windows Vista,Windows Server 2003和Windows Server 2008上进行了测试。
如上所述,我执行了:
但是,这不起作用,因为我正在从PowerShell中执行它。
使用PowerShell时,必须指定sc.exe的完整路径,因为PowerShell具有sc的默认别名,将其分配给Set-Content。 由于这是有效命令,因此实际上不会显示错误消息。
为了解决这个问题,我按如下方式执行它:
1
| C:\Windows\System32\sc.exe delete ServiceName |
如果它们是.NET创建的服务,则可以将installutil.exe与/ u开关一起使用
它在.net framework文件夹中
C: WINDOWS Microsoft.NET Framework64 V2.0.50727
这是一个传递给我的vbs脚本:
1 2 3 4 5 6 7 8 9
| Set servicelist = GetObject("winmgmts:").InstancesOf ("Win32_Service")
for each service in servicelist
sname = lcase(service.name)
If sname ="NameOfMyService" Then
msgbox(sname)
service.delete ' the internal name of your service
end if
next |
sc删除名称
在删除服务之前,您应该查看依赖关系。
您可以检查一下:
打开services.msc并找到服务名称,切换到"依赖关系"选项卡。
资料来源:http://www.sysadmit.com/2016/03/windows-eliminar-un-servicio.html
对我来说,我创建的服务必须在"控制面板">"程序和功能"中卸载