You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过VBScript关闭除指定排除项外的所有运行进程方案咨询

VBS内嵌PowerShell实现终止所有进程仅保留指定排除项

注意事项

请务必先在测试环境验证排除列表配置,错误终止系统关键进程可能导致系统崩溃、数据丢失。建议默认将系统核心进程(如svchost.exe、lsass.exe、csrss.exe、wininit.exe等)、桌面进程explorer.exe、以及需要保留的业务进程加入排除列表。

完整实现代码

Dim WshShell, excludeList
Set WshShell = CreateObject("WScript.Shell")

' --------------------------配置区--------------------------
' 自定义需要保留的进程列表,多个进程用英文逗号分隔
excludeList = "svchost.exe,lsass.exe,csrss.exe,wininit.exe,explorer.exe,wscript.exe,powershell.exe"
' ----------------------------------------------------------

' 构造完全内嵌的PowerShell命令,无外部.ps1文件调用
psCommand = "powershell.exe -ExecutionPolicy Bypass -Command ""$excludeArr = @('" & Replace(excludeList, ",", "','") & "'); Get-Process | Where-Object { $excludeArr -notcontains ($_.ProcessName + '.exe') } | ForEach-Object { Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue }"""

' 执行命令:参数0表示隐藏运行窗口,True表示等待命令执行完成再继续
WshShell.Run psCommand, 0, True

' 释放对象
Set WshShell = Nothing

代码说明

  • 排除列表可直接修改excludeList配置项,按照现有格式新增/删除需要保留的进程名即可
  • 自带运行环境适配:添加-ExecutionPolicy Bypass参数绕过Win10默认的PowerShell执行策略限制,无需提前修改系统配置
  • 自带防误杀逻辑:默认保留当前VBS运行进程wscript.exe和PowerShell执行进程powershell.exe,避免脚本运行中断
  • 执行逻辑和原VBS效果一致:强制终止进程,无弹窗提示,无权限操作的进程自动忽略报错

预验证方法

如果需要提前确认待终止的进程范围避免误操作,可临时替换psCommand为以下内容,执行后会将所有待关闭的进程列表输出到C:\process_check.txt,确认无误后再换回终止命令即可:

psCommand = "powershell.exe -ExecutionPolicy Bypass -Command ""$excludeArr = @('" & Replace(excludeList, ",", "','") & "'); Get-Process | Where-Object { $excludeArr -notcontains ($_.ProcessName + '.exe') } | Select-Object ProcessName,Id | Out-File C:\process_check.txt -Encoding UTF8"""

内容的提问来源于stack exchange,提问作者Brian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:15:03