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: 255Dabei 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-onlyNumber 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