如何在VB.NET中读取IDE和SATA驱动器的硬盘序列号?(我不想要卷序列号).
如果没有管理权限,应该为XP和Vista收集此信息.
您可以像这样使用WMI(Windows Management Instrumentation):
Dim mos As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia") For Each mo As ManagementObject In mos.Get() Dim serial As String = mo("SerialNumber").ToString() Next
虽然,我已经阅读过使用WMI没有返回序列号的情况.实现此目的的另一种方法是通过平台调用服务(PInvoke).
该文章包含在作者实现下载的CreateFile()和DeviceIoControl的()通过互操作服务在VB .NET中提取驱动器的信息.
要使用上述任何一种方法,您将需要ADMIN权限,可以在此处找到一个似乎可以绕过此实用程序的实用程序.如果您喜欢冒险,可以使用C++/Win32 源代码进行细读.(查看函数'ReadPhysicalDriveInNTWithZeroRights()')