Obtenez H / D Numéro de série (non Volumn numéro de série) pour IDE et SATA
-
22-08-2019 - |
Question
Comment puis-je lire le disque dur numéro de série de lecteurs IDE et SATA en VB.NET? (Je ne veux pas le volume numéro de série).
Cette information doit être réuni à la fois pour XP et Vista si possible sans droits d'administration.
La solution
Vous pouvez utiliser WMI (Windows Management Instrumentation) comme celui-ci :
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
Bien, je l'ai lu sur les cas où aucun numéro de série est renvoyé en utilisant WMI. Une autre façon d'y parvenir serait par la plate-forme les services d'appel (PInvoke).
Cet article comprend un téléchargement dans lequel l'auteur met en œuvre CreateFile () et DeviceIoControl () pour extraire des informations d'entraînement grâce à des services Interop dans VB .NET.
Pour utiliser l'une des méthodes dont vous aurez besoin décrites ci-dessus les droits ADMIN, un utilitaire qui semble contourner cela peut être trouvé ici . Si votre sentiment d'aventure le C ++ / Win32 code source est disponible pour vous lisiez attentivement. (Consultez le 'ReadPhysicalDriveInNTWithZeroRights ()' fonction)
Autres conseils
Public Function getHardDiskSerialNo()
Dim serial As String
Dim hd As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
For Each dvs As ManagementObject In hd.Get()
serial = dvs("SerialNumber").ToString()
Next
Return serial
End Function
Voici le code pour obtenir le numéro de série du disque dur
Dim HDD_Serial As String
Dim hdd As New ManagementObjectSearcher("select * from Win32_DiskDrive")
For Each hd In hdd.Get
HDD_Serial = hd("SerialNumber")
MsgBox(HDD_Serial)
Next
it helps.