IT之家 05月18日 16:23
微软宣布 VBScript 弃用计划,企业需提前部署检测策略
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

微软发布技术公告,旨在帮助企业在 VBScript 弃用前检测并迁移其依赖。VBScript 将在未来的 Windows 版本中默认禁用,微软已启动分阶段弃用计划。公告提供了多种检测策略,包括使用 Sysmon 监控 VBScript 使用情况、审查 VBScript 依赖项、全系统扫描 .vbs 文件以及扫描自定义 MSI 安装包。微软建议企业尽快完成检测与迁移,避免未来操作系统默认禁用导致业务中断。

🔍 **使用 Sysmon 监控 VBScript 使用情况**:通过 Sysmon 监控工具,可以追踪 vbscript.dll 的加载情况,从而了解哪些进程正在使用 VBScript。管理员可以配置 Sysmon 以捕捉 vbscript.dll 何时、由哪个进程被加载,例如通过配置 Sysmon 配置文件(sysmon-config.xml)。

📝 **审查 VBScript 依赖项**:检查组策略脚本、计划任务和 Intune 部署的 PowerShell 脚本,查找对 VBScript 的调用。这包括扫描 \\SYSVOL 中的 .vbs 文件,以及对 wscript.exe、cscript.exe 的调用,以及排查间接调用 VBScript 的情况。

💻 **全系统扫描 .vbs 文件**:使用 PowerShell 脚本扫描用户及脚本相关目录,例如 C:\Users、C:\ProgramData、C:\Program Files、C:\Scripts 和 C:\Windows(可选)。示例 PowerShell 脚本可以帮助查找系统中存在的 .vbs 文件。

📦 **扫描自定义 MSI 安装包**:通过 PowerShell 脚本分析 MSI 包中嵌入的 VBScript 自定义动作。脚本可以检查 MSI 包中的 CustomAction 表,查找 Action Type 为 6、38 或 50 的 VBScript 自定义动作,并输出相关信息。

💡 **后续行动与建议**:在确认无依赖后,企业应考虑迁移到现代技术,并主动禁用 VBScript。微软建议参考官方文档,选择合适的替代方案,例如通过命令禁用 VBScript:Dism /Online /Remove-Capability /CapabilityName:VBSCRIPT~~~~。

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

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

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

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

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

<Sysmon schemaversion="4.50"><EventFiltering>   <ImageLoad onmatch="include">     <ImageLoaded condition="contains">vbscript.dll</ImageLoaded>   </ImageLoad></EventFiltering></Sysmon>

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

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

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

示例 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   }}$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   }}

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

后续行动建议

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

参考资料:

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

VBScript Windows IT 微软
相关文章