VBScript 序列号属性
最后修改于 2025 年 4 月 9 日
VBScript 中的 SerialNumber 属性是 FileSystemObject 中 Drive 对象的一部分。它返回在格式化过程中分配给磁盘卷的唯一十进制数字。此数字有助于在脚本中识别和跟踪存储设备。它是只读的,不能通过编程修改。
除非驱动器被重新格式化,否则序列号将保持不变。它对于许可证验证和驱动器标识任务很有用。本教程通过实际示例涵盖 SerialNumber 的用法。
序列号属性概述
SerialNumber 属性检索驱动器的唯一标识号。此号码在卷格式化时分配。在 VBScript 脚本中,通过 Drive 对象访问该属性。
主要功能包括跨系统重启的持久标识。默认情况下,号码以十进制格式显示。它适用于所有驱动器类型,包括 HDD、SSD 和可移动媒体。理解此属性有助于创建健壮的驱动器管理脚本。
基本序列号检索
此示例演示了 SerialNumber 的最简单用法,以获取驱动器的标识号。它展示了如何访问系统驱动器的属性。脚本以十进制格式显示序列号。
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("C:")
WScript.Echo "Drive C: Serial Number: " & drive.SerialNumber
Set drive = Nothing
Set fso = Nothing
脚本创建一个 FileSystemObject 并获取 C: 驱动器对象。然后,它检索并显示序列号属性。输出显示了在格式化过程中分配给卷的唯一十进制标识符。
将序列号转换为十六进制
驱动器序列号通常在系统工具中以十六进制格式显示。此示例显示如何将十进制序列号转换为十六进制。结果与您在命令行工具中看到的内容相匹配。
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("C:")
decSerial = drive.SerialNumber
hexSerial = Hex(decSerial)
WScript.Echo "Decimal: " & decSerial
WScript.Echo "Hexadecimal: " & hexSerial
Set drive = Nothing
Set fso = Nothing
脚本检索十进制序列号,然后使用 VBScript 的 Hex 函数进行转换。这与 Windows 实用程序(如 vol 命令)中显示的格式相匹配。十六进制表示法更常用于显示目的。
检查多个驱动器序列号
此示例演示如何检索系统中所有可用驱动器的序列号。它展示了如何遍历 Drives 集合。将显示每个驱动器的字母和序列号。
Set fso = CreateObject("Scripting.FileSystemObject")
Set drives = fso.Drives
For Each drive In drives
If drive.IsReady Then
WScript.Echo drive.DriveLetter & ": " & drive.SerialNumber
End If
Next
Set drives = Nothing
Set fso = Nothing
脚本枚举所有可用的驱动器并检查它们是否已准备好。对于每个准备好的驱动器,它将显示驱动器字母和序列号。IsReady 检查可防止与不可用驱动器(如空 CD-ROM)发生错误。
比较驱动器序列号
此示例演示了如何使用序列号来比较驱动器。它检查两个指定驱动器是否具有相同的序列号。此技术可以检测同一物理驱动器是否以不同的字母挂载。
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive1 = fso.GetDrive("C:")
Set drive2 = fso.GetDrive("D:")
If drive1.SerialNumber = drive2.SerialNumber Then
WScript.Echo "Drives have the same serial number"
Else
WScript.Echo "Drives have different serial numbers"
End If
Set drive1 = Nothing
Set drive2 = Nothing
Set fso = Nothing
脚本检索驱动器 C: 和 D: 的序列号。它会比较它们并报告它们是否匹配。此方法对于检测镜像驱动器或多个路径指向同一物理存储非常有用。
创建驱动器清单报告
此综合示例创建了一个详细的驱动器清单报告。它收集多个属性,包括所有可用驱动器的序列号。输出经过格式化,易于阅读和记录。
Set fso = CreateObject("Scripting.FileSystemObject")
Set drives = fso.Drives
WScript.Echo "Drive Inventory Report"
WScript.Echo "----------------------"
WScript.Echo "Generated: " & Now()
WScript.Echo ""
For Each drive In drives
If drive.IsReady Then
WScript.Echo "Drive Letter: " & drive.DriveLetter
WScript.Echo "Serial Number: " & drive.SerialNumber
WScript.Echo "Volume Name: " & drive.VolumeName
WScript.Echo "File System: " & drive.FileSystem
WScript.Echo "Total Size: " & FormatNumber(drive.TotalSize/1073741824, 2) & " GB"
WScript.Echo "Free Space: " & FormatNumber(drive.FreeSpace/1073741824, 2) & " GB"
WScript.Echo "----------------------"
End If
Next
Set drives = Nothing
Set fso = Nothing
脚本生成一份包含多个驱动器属性的综合报告。序列号与容量和文件系统信息一起包含在内。输出格式化有清晰的标签和分隔符,以提高可读性。这展示了序列号在系统清单脚本中的实际应用。
来源
在本文中,我们探讨了 VBScript 中的 SerialNumber 属性,涵盖了它的用法和实际应用。从基本检索到复杂的驱动器比较和清单任务,这些示例展示了它的多功能性。有了这些知识,您就可以通过可靠的设备标识来增强您的驱动器管理脚本。