使用 VBScript 和 WMI 访问 Vista 的 BcdStore






3.10/5 (4投票s)
一个示例,展示如何使用 VBScript 和 WMI 访问 Vista 的 BcdStore。
引言
Vista 的 BCD(启动配置数据)取代了先前 Windows 版本中使用的 boot.ini 文件。 此脚本的主要受众是需要自动化 Vista 机器启动方式的系统管理员。
微软提供了有关如何检查和更新 BcdStore(即包含 BCD 的注册表文件)的文档,但这些信息分散在多个来源中。 很少有使用 VBScript 检查或更新 BcdStore 信息的良好示例。
此脚本旨在作为一个可用的示例,可以用作起点以提供一些自动化。 通过复制“bcdedit /enum active”命令的输出,人们可以看到如何提取启动相关信息。
背景
WMI 是一个庞大而复杂的主题。 对于不熟悉 WMI 的读者,我建议 这个 URL 作为 WMI 的一个很好的介绍,以及如何将其与 VBScript 一起使用。
微软的 BCD 文档可以在
- Vista 软件开发工具包
- MSDN 库,“启动配置数据 (BCD)”
- “Windows Vista 中的启动配置数据”
Using the Code
该脚本显示文本行,类似于 Vista 的“bcdedit.exe”命令行实用程序。 因此,该程序应作为 cscript 运行
cscript mimic_bcedit.vbs
或者,您可以将默认脚本宿主设置为 cscript
,方法是发出命令
cscript //h:cscript
在这种情况下,在运行任何 .vbs 文件时,可以省略前导 cscript。
关注点
BCD 以以下形式存储逻辑驱动器信息
\Device\HarddiskVolumeX
不幸的是,没有简单的方法(据我所知)使用 VBScript 将其转换为驱动器号(例如 C:)。 DDK 函数 ZwQuerySymbolicLinkObject()
可用于从 \Device\HarddiskVolumeX 引用获取驱动器号。
历史
- 上传于 2007 年 4 月 1 日 - 初始版本