当前位置: 首页 » 资讯 » 新零售 » 正文

微软宣布 VBScript 弃用计划,企业需提前部署检测策略

IP属地 北京 编辑:任飞扬 IT之家 时间:2025-05-18 17:02:20

5 月 18 日消息,当地时间 5 月 17 日,微软发布技术公告,旨在帮助企业在 VB 全面弃用之前检测并迁移现有环境中的 VB 依赖。

注:VB 将在未来的 Windows 版本中默认禁用,目前微软已启动分阶段弃用计划并在 Win11 24H2 中将 VB 转为 FOD 可选功能。

策略一:使用 Sysmon 监控 VB 使用情况

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

配置 Sysmon 以追踪 vb.dll,配置示例如下:

vb.dll

要应用此配置,首先需要编辑您的 Sysmon 配置文件(通常是 sysmon-config.xml)。

使用 Sysinternals Sysmon 实用程序重新加载。 以管理员权限打开命令提示符并运行:Sysmon64.exe-c sysmon-config.xml 通过运行以下命令验证当前配置:Sysmon64.exe-c策略二:审查 VB 依赖项

检查以下集中管理位置中的脚本文件:

组策略脚本:扫描 SYSVOL 中的.vbs 文件及对 w.exe、c.exe的调用。 计划任务:检查任务命令行的.vbs 执行痕迹。 Intune 部署的 PowerShell 脚本:排查间接调用 VB 的情况。 策略三:全系统扫描.vbs 文件

通过 Power 脚本扫描用户及脚本相关目录:

C:Users C:ProgramData C:Program Files C:s C:Windows(可选,可能包含干扰文件)

示例 PowerShell 脚本:

$pathsToScan = @("C:Users", "C:ProgramData", "C:s")$logPath = "C:VBSScanVbsFiles_$(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 }}$pathsToScan = @("C:Users", "C:ProgramData", "C:s")$logPath = "C:VBSScanVbsFiles_$(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 }}

策略四:扫描自定义 MSI 安装包

例如以下 PowerShell 脚本可分析 MSI 包中嵌入的 VB 自定义动作(Action Type 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 "⚠ VB Custom Action: $actionName in $msiPath" } $record = $view.Fetch }}

后续行动建议

迁移替代方案:参考微软官方文档《VB 弃用:时间线与后续步骤》选择现代技术。 主动禁用 VB:在确认无依赖后,通过命令禁用:Dism /online /Remove-Capability /CapabilityName:VB~~~~

影响:禁用后,依赖 VB 的进程(如 c.exe)将静默失败或报错。

微软强调,当前阶段企业应尽快完成检测与迁移,避免未来操作系统默认禁用导致业务中断。

参考资料:

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。

全站最新