Auslesen der Festplatten Seriennummer



  • Hallo,

    ich würde gern einmal wissen wie man die Seriennummer einer im System befindlichen Festplatte ausliest.

    Ich habe bisher nur gefunden wie man die Volume ID's der Partitionen bekommt.
    Ich möchte aber die Seriennummer der Festplatte haben - also hilft hier GetVolumeInformation nicht so direkt weiter. Ebenso muss es auch möglich sein an den Hersteller und die Gerätebezeichnung zu kommen. Das beweist ein Blick auf den EigenschaftenDialog in der Computerverwaltung der entsprechenden Festplatte.

    vielen Dank
    Saxony



  • WMI mit Win32_DiskDrive liefert bei mir z.B.:

    BytesPerSector: 512
    Capabilities: System.UInt16[]: 3 4
    Caption: WDC WD400BB-75AUA1
    ConfigManagerErrorCode: 0
    ConfigManagerUserConfig: False
    CreationClassName: Win32_DiskDrive
    Description: Laufwerk
    DeviceID: \.\PHYSICALDRIVE1
    Index: 1
    InterfaceType: IDE
    Manufacturer: (Standardlaufwerke)
    MediaLoaded: True
    MediaType: Fixed hard disk media
    Model: WDC WD400BB-75AUA1
    Name: \.\PHYSICALDRIVE1
    Partitions: 1
    PNPDeviceID: IDE\DISKWDC_WD400BB-75AUA1______________________18.20D18\4457572D414D5236363239373839_039_0_0_0_0
    SCSIBus: 0
    SCSILogicalUnit: 0
    SCSIPort: 0
    SCSITargetId: 1
    SectorsPerTrack: 63
    Signature: 4285347031
    Size: 40015987200
    Status: OK
    SystemCreationClassName: Win32_ComputerSystem
    SystemName: TB70KAJ
    TotalCylinders: 4865
    TotalHeads: 255
    TotalSectors: 78156225
    TotalTracks: 1240575
    TracksPerCylinder: 255

    Dabei ist "Signature" die Seriennummer...



  • kann mir bitte jemand ein beispiel nennen?
    ich bräuchte die information in einem char oder int



  • Hmmmm.... eigentlich ist ein einfach:
    1. Win32_DiskDrive in www.google.de eingeben
    2. Ersten Link drücken =>
    http://msdn2.microsoft.com/en-us/library/aa394132.aspx
    3. In diesem Link ganz unten auf "WMI C++ Application Examples" drücken =>
    http://msdn2.microsoft.com/en-us/library/aa394558.aspx
    4. Dann "Example: Getting WMI Data From the Local Computer" drücken =>
    http://msdn2.microsoft.com/en-us/library/aa390423.aspx
    5. Das Beispiel rauskopieren und auf "Win32_DiskDrive" anpassen
    6. Fertig.



  • Edit: Scheint wohl nur als Admin zu gehen.
    Gerade mit nem anderen fertigen programm getestet und das zeigt die Serial auch als nicht-Admin an.
    Geht das hiermit auch irgendwie?



  • Ich hab mal in der MSDN nachgeguckt und da gibts eine Property SerialNumber die wohl eher das gesucht ist, aber gar nicht auf aktuellen Betriebssystemen verfuegbar ist:

    SerialNumber
    Data type: string
    Access type: Read-only

    Number allocated by the manufacturer to identify the physical media.

    Example: WD-WM3493798728

    Windows Server 2003, Windows XP, Windows 2000, and Windows NT 4.0: This property is not available.



  • In Win32_PhysicalMedia is auch eine drin.



  • muss ich da( http://msdn2.microsoft.com/en-us/library/aa390423.aspx ) mehr ändern, als den Query auf " SELECT * FROM Win32_PhysicalMedia" und beim auslesen(pclsObj->Get()) auf "SerialNumber" zu setzen? Auf jeden Fall klappts damit nicht, auch nicht als Admin 😞



  • ich habe gerade Diskid32 gefunden( http://www.winsim.com/diskid32/diskid32.html ), die beispiel anwendung funktioniert auch(ohne admin rechte), nur wenn ich das selber kompilieren will, spuckt er 102 fehler aus..hauptsächlich Typneudefinitionen, die vorher in der winioctl.h definiert wurden...

    Edit:
    einfach alle typ definitionen ausklammern, bei denen er meckert und es klappt..zumindest bei mir 😉


Anmelden zum Antworten