【发布时间】:2010-09-09 17:13:05
【问题描述】:
我想完全卸载一些旧服务。我该怎么做?
【问题讨论】:
标签: windows-services sysadmin administration
我想完全卸载一些旧服务。我该怎么做?
【问题讨论】:
标签: windows-services sysadmin administration
使用 SC 命令,如下所示(您需要在命令提示符下执行本文中的命令):
SC STOP shortservicename
SC DELETE shortservicename
注意:您需要以管理员身份运行命令提示符,不仅要以管理员身份登录,还要具有管理权限。如果您收到上述关于没有必要的访问权限来停止和/或删除服务的错误,请以管理员身份运行命令提示符。您可以通过在开始菜单上搜索命令提示符然后右键单击并选择“以管理员身份运行”来执行此操作。 PowerShell 用户注意事项: sc 是 set-content 的别名。所以sc delete service 实际上会创建一个名为delete 的文件,其内容为service。要在 Powershell 中执行此操作,请改用 sc.exe delete service
如果您需要查找服务的短服务名称,请使用以下命令生成包含服务列表及其状态的文本文件:
SC QUERY state= all >"C:\Service List.txt"
要获得更简洁的列表,请执行以下命令:
SC QUERY state= all | FIND "_NAME"
短服务名称将列在显示名称的正上方,如下所示:
SERVICE_NAME: MyService
DISPLAY_NAME: My Special Service
因此删除该服务:
SC STOP MyService
SC DELETE MyService
【讨论】:
sc query state= all获取完整的服务列表;基本sc query 不会返回非活动(又名禁用)服务。
sc 的别名为 set-content。所以sc delete service 实际上会创建一个名为delete 的文件,其内容为service。要在 Powershell 中执行此操作,请改用 sc.exe delete service。
点击开始 | 运行并在 Open: 行中输入 regedit。点击确定。
导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
向下滚动左窗格,找到服务名称,右键单击它并选择删除。
重启系统。
【讨论】:
sc delete 机制失败时,这是一个很好的回退。谢谢。
使用 services.msc 或(开始 > 控制面板 > 管理工具 > 服务)查找有问题的服务。双击查看服务名称和可执行文件的路径。
检查 exe 版本信息以获取有关服务所有者的线索,并尽可能使用添加/删除程序进行干净卸载。
如果失败,从命令提示符:
sc stop servicexyz
sc delete servicexyz
不需要重新启动。
【讨论】:
sc delete "Amazon Assistant Service"
SC DELETE "service name"
以管理员身份在 cmd 上运行命令,否则会出现此错误:-
openservice failed 5 访问被拒绝
【讨论】:
如上所述,我执行了:
sc delete ServiceName
但是这不起作用,因为我是从 PowerShell 执行的。
使用 PowerShell 时,您必须指定 sc.exe 的完整路径,因为 PowerShell 具有 sc 的默认别名,将其分配给 Set-Content。由于它是一个有效的命令,它实际上并没有显示错误消息。
为了解决这个问题,我执行如下:
C:\Windows\System32\sc.exe delete ServiceName
【讨论】:
我们可以通过两种不同的方式做到这一点
通过注册表删除 Windows 服务
如果您知道正确的路径,从注册表中删除服务非常容易。我是这样做的:
运行 Regedit 或 Regedt32
转到注册表项“HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services”
查找您要删除的服务并将其删除。您可以查看密钥以了解服务正在使用哪些文件并删除它们(如有必要)。
通过命令行窗口删除 Windows 服务
或者,您也可以使用命令提示符并使用以下命令删除服务:
sc 删除
您也可以使用以下命令创建服务
sc create "MorganTechService" binpath="C:\Program Files\MorganTechSPace\myservice.exe"
注意:您可能需要重新启动系统才能在服务管理器中更新列表。
【讨论】:
如果您有 Windows Vista 或更高版本,请以管理员身份从命令提示符运行:
sc delete [your service name as shown in service.msc e.g moneytransfer]
例如:sc delete moneytransfer
删除文件夹C:\Program Files\BBRTL\moneytransfer\
找到汇款注册表项并将其删除:
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 上进行了测试。
【讨论】:
如果它们是 .NET 创建的服务,您可以使用带有 /u 开关的 installutil.exe 它在 .net 框架文件夹中,例如 C:\Windows\Microsoft.NET\Framework64\v2.0.50727
【讨论】:
这是一个传给我的 vbs 脚本:
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
【讨论】:
这在 Windows 10 上为我完成了这项工作:
【讨论】:
对我来说,我创建的服务必须在“控制面板”>“程序和功能”中卸载
【讨论】:
您可以使用我的小型服务列表编辑器实用程序服务管理器
您可以选择任何服务 > 修改 > 删除。方法立即生效,无需重启。
可执行文件:[Download]
源码:[Download]
博文:[BlogLink]
服务编辑器类:WinServiceUtils.cs
【讨论】: