Obtenez H / D Numéro de série (non Volumn numéro de série) pour IDE et SATA

StackOverflow https://stackoverflow.com/questions/535902

  •  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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top