首页/安全/安全加固速查/Windows Script Host 禁用
主机加固基线90 条

Windows Script Host 禁用

wscript/cscript 是钓鱼脚本(VBS/JS)的主要执行载体;业务不依赖 WSH 的环境可直接禁用,把社工链上的执行支点拿掉。

安全加固速查安全更新于 2026-10-13

Windows Script Host 是什么

Windows Script Host 让 .vbs 与 .js 文件双击就能执行,wscript 走图形界面、cscript 走控制台,两者共用同一套脚本引擎。钓鱼邮件里的脚本附件、压缩包里的 .vbs 几乎都靠它落地,所以业务不依赖 WSH 的环境把它关掉,等于抽掉社工链上最省事的一环。

基本信息

加固项脚本宿主收敛
适用平台Windows Server / Windows 10 及以上
基线取值WSH\Settings 下 Enabled = 0
影响面.vbs、.js 文件的执行入口
域环境GPO:计算机配置 → 管理模板 → 系统 → 关闭 Windows 脚本宿主
风险等级中

典型使用场景

  • 办公终端:绝大多数业务不需要 VBS,禁用可显著减少钓鱼落地
  • 服务器:运维与登录脚本应走 PowerShell 或配置管理,不该依赖 VBS
  • 事件处置:攻击者已用 WSH 执行载荷时,先收敛执行面再排查
  • 基础镜像制作:把禁用写进基线,避免逐台手工处理
  • 域环境统一治理:用 GPO 下发并防止本地被改回

设置与核查

设置与核查
# 关闭 Windows 脚本宿主(对机器上所有用户生效)
$k='HKLM:\SOFTWARE\Microsoft\Windows Script Host\Settings'
New-Item -Path $k -Force | Out-Null
Set-ItemProperty $k -Name Enabled -Value 0 -Type DWord
# 核查当前值
Get-ItemProperty $k -Name Enabled

依赖方与禁用影响

依赖方典型用途禁用后的影响
登录脚本老环境用 VBS 映射盘符或写注册表用户登录时报错或部分设置失效,需先迁移到组策略首选项
运维脚本批量改名、清理、调用业务接口计划任务里的 VBS 静默失败,上线前先盘点
安装程序老安装包的引导脚本安装中断,需准备新版安装包或走临时放行
钓鱼脚本邮件附件中的 .vbs 与 .js攻击链在这一步被切断,这是禁用的主要收益
禁用 WSH 不影响 PowerShell:脚本执行面要配合约束语言模式、脚本块日志与应用控制一起治理。
老安装程序内嵌 VBS 时会安装失败,提前准备替代安装包,或保留一条有审批记录的临时放行流程。
域环境用 GPO 统一推送比逐台改可靠,也能防止本地设置被工具或用户改回去。

易错点

  • 以为禁了 WSH 就管住了脚本:PowerShell 与其它解释器照旧可用,脚本执行面需要整体治理
  • 不盘点直接禁用:依赖 VBS 的登录脚本与计划任务静默失败,问题往往几天后才被发现
  • 只在单机改注册表:镜像重装或域策略覆盖后失效,应通过 GPO 或基础镜像固化
  • 禁用后不记录例外:临时放行的机器长期停留在例外状态,等于给攻击者留了后门

数据来源与参考

  • Microsoft 安全基线:Windows Script Host 禁用
  • CIS Windows Benchmark:WSH 条目(相关)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌