Frage

Wie kann ich die Festplatte Seriennummer für IDE und SATA-Laufwerke in VB.NET lesen? (Ich habe nicht die Datenträger-Seriennummer will).

Diese Informationen sollten sowohl für XP und Vista, wenn möglich ohne Administratorrechte gesammelt werden.

War es hilfreich?

Lösung

Sie können mit WMI (Windows Management Instrumentation) wie folgt :

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

Obwohl, ich habe über Fälle gelesen, in denen keine Seriennummer zurückgegeben wird, mithilfe von WMI. Ein anderer Weg, um dies zu erreichen durch Platform Invocation Services (PInvoke) sein würde.

Diese Artikel enthält einen Download, in dem der Autor Geräte Createfile () und DeviceIoControl () Laufwerk Informationen über Interop-Dienste in VB .NET zu extrahieren.

Um eine der oben beschriebenen Methoden verwenden Sie ADMIN Rechte benötigen, ein Dienstprogramm, das dies zu umgehen, scheint kann hier . Wenn Ihr Gefühl der C ++ / Win32 Quellcode ist abenteuerlich für Sie zu lesen. (Überprüfen Sie die Funktion 'ReadPhysicalDriveInNTWithZeroRights ()' out)

Andere Tipps

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

Hier ist der Code auf der Festplatte Seriennummer zu bekommen

    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

Hoffe, es hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top