Welcome
admin
admin

2025-06-15 06:40:54

葡萄牙世界杯球员
2446 456

资讯 ⏱️ 2025 年 5 月 17 日, 9:46 下午 📝 walkingdog

随着 VBScript 即将在未来 Windows 版本中默认禁用,微软已启动其分阶段弃用计划,微软已经在 Windows 11 24H2 中将 VBScript 转为按需功能(FOD)。

为帮助组织提前识别风险、减少中断、确保顺利迁移,微软发布了四套涵盖检测、审计与替代策略的企业级 VBScript 使用识别与禁用指南。以下是四种检测策略以及禁用方案:

内容目录

Toggle

策略一:使用 Sysmon 检测 VBScript 加载行为配置 Sysmon 以追踪 vbscript.dll日志收集与分析技巧策略二:审查企业中存在的 VBScript 依赖路径审核组策略(GPO)php-template分析计划任务与 Intune 脚本策略三:扫描终端系统上的 .vbs 文件示例 PowerShell 脚本策略四:分析 MSI 安装包中的嵌入 VBScript检测 MSI 中的 VBScript 自定义操作下一步:识别依赖后实施迁移与禁用提前禁用 VBScript(可选)cmd 命令

策略一:使用 Sysmon 检测 VBScript 加载行为

Sysmon(System Monitor) 是 Sysinternals 提供的监控工具,支持对 .dll 加载行为进行细致跟踪。借助其 Event ID 7(Image Load)功能,管理员可以捕捉 vbscript.dll 何时、由哪个进程被加载。

配置 Sysmon 以追踪 vbscript.dll

建议使用最小化规则集聚焦 .dll 加载,配置示例如下:

vbscript.dll

部署步骤包括编辑配置文件、使用 Sysmon64.exe -c 命令加载、验证当前配置。

注意: 在大规模部署前,请在测试环境中评估其性能影响。

Sysmon 可通过 Intune、组策略、Microsoft Configuration Manager 或脚本批量推送。

日志收集与分析技巧

部署后,事件查看器中可通过以下路径查看日志:

应用程序和服务日志 > Microsoft > Windows > Sysmon > Operational

筛选 Event ID 为 7 的事件,并结合 Power BI、Excel 或 SIEM 工具分析其来源。例如:

追踪触发进程来源: 结合 Event ID 1(进程创建)还原完整调用链;

减少 Web 应用噪声: 对运行经典 ASP 的 IIS,可将 Sysmon 日志与 IIS 日志关联分析。详细说明可参考:IIS 日志筛选文档。

策略二:审查企业中存在的 VBScript 依赖路径

VBScript 通常隐藏在组织的集中式管理流程中,如:

组策略(GPO)配置的登录/注销、启动/关机脚本;

含 VBScript 的计划任务;

Intune 部署的 PowerShell 脚本中间接调用的 .vbs 文件。

审核组策略(GPO)

检查以下路径中是否存在 .vbs 文件:

php-template

\\\SYSVOL

并分析内容是否调用 wscript.exe、cscript.exe 或直接执行 .vbs 文件。更多细节可参考 GPO 脚本指南。

分析计划任务与 Intune 脚本

使用 PowerShell 枚举计划任务,重点关注路径如 \Microsoft\Windows\ 和自定义组织命名空间。对 Intune 脚本,检查是否存在 PowerShell 中调用 cscript.exe 的情形。

策略三:扫描终端系统上的 .vbs 文件

除了集中管理路径,企业中仍可能存在被遗忘或局部部署的 .vbs 脚本文件。

建议扫描以下常见目录:

C:\Users\

C:\ProgramData\

C:\Program Files\

C:\Scripts\

C:\Windows\(可选,注意噪声)

示例 PowerShell 脚本

$pathsToScan = @(“C:\Users”, “C:\ProgramData”, “C:\Scripts”)

$logPath = “C:\VBSScriptScan\VbsFiles_$(hostname).csv”

$results = foreach ($path in $pathsToScan) {

if (Test-Path $path) {

Get-ChildItem -Path $path -Filter *.vbs -Recurse -ErrorAction SilentlyContinue |

Select-Object FullName, LastWriteTime, Length

}

}

$results | Export-Csv -Path $logPath -NoTypeInformation

部署渠道可包括 Intune、GPO 启动脚本、Remote PowerShell、Configuration Manager 等。

策略四:分析 MSI 安装包中的嵌入 VBScript

某些企业内部应用仍通过 .msi 安装包的自定义操作嵌入 VBScript,在安装或卸载过程中触发执行。

检测 MSI 中的 VBScript 自定义操作

以下 PowerShell 脚本可分析 CustomAction 表中类型为 6、38、50 的条目:

Get-ChildItem -Path “C:\MSIRepo” -Recurse -Filter *.msi | ForEach-Object {

$msiPath = $_.FullName

$sql = “SELECT * FROM CustomAction”

$installer = New-Object -ComObject WindowsInstaller.Installer

$database = $installer.GetType().InvokeMember(“OpenDatabase”, “InvokeMethod”, $null, $installer, @($msiPath, 0))

$view = $database.OpenView($sql)

$view.Execute()

$record = $view.Fetch()

while ($record -ne $null) {

$actionName = $record.StringData(1)

$actionType = [int]$record.StringData(2)

if ($actionType -eq 6 -or $actionType -eq 38 -or $actionType -eq 50) {

Write-Output “⚠ VBScript 自定义操作: $actionName in $msiPath”

}

$record = $view.Fetch()

}

}

可扩展策略包括:

集中收集 MSI 文件(如从 Intune、ConfigMgr 源);

自动化定期扫描任务;

报告汇总分析结果;

避免使用 Win32_Product,以免触发应用修复。

可辅助查看注册表安装信息:

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |

Where-Object { $_.DisplayName } |

Select-Object DisplayName, InstallDate, Publisher

下一步:识别依赖后实施迁移与禁用

完成检测后,应尽快规划 VBScript 替代方案,例如:

使用 PowerShell 重写现有脚本;

使用 Task Scheduler、ConfigMgr 或 Intune 替代任务逻辑;

迁移至现代 API 或 WMI 替代调用方式。

提前禁用 VBScript(可选)

确认所有依赖清除后,可执行以下命令从系统中移除 VBScript 功能:

cmd 命令

Dism /Online /Remove-Capability /CapabilityName:VBSCRIPT~~~~

建议通过 Intune、组策略或 Configuration Manager 批量部署。

提醒: 禁用 VBScript 后,相关脚本将全部失效,请先在测试环境中验证兼容性。

VBScript 的正式弃用是 Windows 安全性与现代化的重要一步。通过 Sysmon 跟踪、集中审查、系统扫描及 MSI 分析,企业可全面识别潜在风险并主动迁移。推荐 IT 管理员立即行动,以减少未来系统升级带来的兼容性问题。

via Microsoft

VBScript VBScript Deprecation Windows 11 24H2