杀死指定进程名称的小VBS
这是一段用于终止特定进程名的VBS脚本,期望它能解决您的需求。
以下脚本提供了强大的进程管理功能,可用于检测进程存在与否及强制终止运行中的进程。其核心是接受用户指定的进程名称作为操作目标。
```vbscript
On Error Resume Next ' 启用错误处理机制,脚本继续执行
Dim ProcessTarget, KillMode, ProcessList, strComputer, objWMIService, colProcess, objProcess
ProcessTarget = "" ' 预定义进程名称变量(置空)
KillMode = "" ' 预定义终止模式标志(置空)
ProcessList = "" ' 预定义进程名称清单(置空)
' 分析传入参数
If WScript.Arguments.Count = 1 Then
' 单一参数默认为目标进程名
ProcessTarget = WScript.Arguments(0)
ElseIf WScript.Arguments.Count >= 2 Then
ProcessTarget = WScript.Arguments(0)
KillMode = WScript.Arguments(1) ' 解析终止模式开关参数
If WScript.Arguments.Count >= 3 Then
ProcessList = WScript.Arguments(2) ' 解析进程名称清单参数
End If
End If
' 验证目标进程名是否有效
If ProcessTarget = "" Then
WScript.Echo "必须明确指定一个有效的进程名!" & vbCrLf & "Usage: cscript.exe prockill.vbs ProcessName [kill] [LIST]"
WScript.Quit
End If
strComputer = "." ' 定位本地机器
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") ' 连接WMI服务
Set colProcess = objWMIService.ExecQuery("Select from Win32_Process Where Name = '" & ProcessTarget & "'") ' 精准查询目标进程
Dim matchCount : matchCount = 0
For Each objProcess in colProcess
matchCount = matchCount + 1 ' 精确统计匹配的进程实例数量
Next
' 根据匹配结果采取行动
If matchCount <= 0 Then
WScript.Echo "未发现名为 " & ProcessTarget & " 的进程。"
Else
WScript.Echo "成功发现 " & matchCount & " 个名为 " & ProcessTarget & " 的进程实例。"
' 检查是否需执行终止操作
If (UCase(KillMode) = "KILL") Or (UCase(KillMode) = "T") Then
Dim terminateResult : terminateResult = True
For Each objProcess in colProcess
' 验证进程是否在清单内(若清单启用)
If ProcessList <> "" Then
Dim arrList : arrList = Split(ProcessList, ",") ' 切分进程名称清单
Dim bFound : bFound = False
For Each strItem in arrList
' 忽略空白清单项
If Trim(strItem) <> "" Then
' 执行大小写非敏感匹配
If UCase(Trim(strItem)) = UCase(ProcessTarget) Then
bFound = True
Exit For
End If
End If
Next
' 处理清单外的进程
If Not bFound Then
WScript.Echo "跳过终止:" & ProcessTarget & " 未列入清单 " & ProcessList
terminateResult = False
Exit For
End If
End If
' 执行实际终止操作
objProcess.Terminate()
WScript.Echo "系统成功终止目标进程:" & ProcessTarget & " (PID: " & objProcess.ProcessId & ")"
Next
If t

WScript.Echo "所有匹配的 " & ProcessTarget & " 进程执行终止操作成功完成。"
Else
WScript.Echo "清单 " & ProcessList & " 外的 " & ProcessTarget & " 进程保留运行状态。"
End If
Else
WScript.Echo "当前为检测模式(仅查询未终止进程)。" & vbCrLf & "如需终止,请附加 'kill' 或 't' 参数执行命令。"
End If
End If
Set colProcess = Nothing
Set objWMIService = Nothing ' 严谨释放WMI对象资源
```