首页 > 解决方案 > 如何在批处理脚本中使用服务的显示名称删除 Windows 服务?

问题描述

我需要删除在 PC 感染恶意软件时创建的一堆服务。服务名称是随机的,但显示名称都是一样的。我不擅长批处理文件,所以我不知道如何编写脚本。

尝试使用 powershell 脚本,但无法使其正常工作。这是在 Windows 7 机器上。

sc getkeyname ControlSysService

当我输入上面的代码时,我得到以下结果。

[SC] GetServiceKeyname SUCCESS

Name = zmzhsirmck

除了 ControlSysService 之外,还有大约 10 个其他显示名称。我拥有所有显示名称,我只需要脚本即可使用显示名称删除服务。

input Display name
get service name
sc delete service

标签: batch-filewindows-services

解决方案


您可以使用以下方法执行此操作WMIC

为了使用您已知的显示名称,您可以从命令提示符运行它

For %A In ("FirstName" "Second Name" "Third Display Name") Do @WMIC Service Where "DisplayName='%~A'" Call Delete

并作为批处理文件:

@Set List="FirstName" "Second Name" "Third Display Name"
@For %%A In (%List%) Do @WMIC Service Where "DisplayName='%%~A'" Call Delete

显然,在这两种情况下,您都将替换"FirstName" "Second Name" "Third Display Name"为已知的显示名称(每个都用双引号括起来)。


推荐阅读