-
Notifications
You must be signed in to change notification settings - Fork 73
/
Copy pathwmi_hdd.ahk
51 lines (40 loc) · 1.96 KB
/
wmi_hdd.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
; Link:
; Author:
; Date:
; for: AHK_L
/*
for k, v in wmi_hdd(){
MsgBox % "Drive:`t`t" v.Driveletter "`nLabel:`t`t" v.VolumeLabel "`nModell:`t`t" v.Model "`nInterface:`t`t" v.InterfaceType "`nSer.Nr. hdd:`t" v.SerialNumber "`nSer.Nr. Vol.:`t" v.VolumeSerialNumber "`nHardwareID:`t" v.PNPDeviceID
}
*/
wmi_hdd() {
;nach https://www.autohotkey.com/boards/viewtopic.php?p=141182&sid=50826a0ab47fd6c1936a3e7cca89d8b0#p141182
;und https://www.mbsplugins.de/archive/2012-02-24/Detecting_drive_letter_for_an_
;Win32_DiskDrive und Win32_LogicalDisk werden über den Laufwerksbuchstaben verbunden
;So kann bei USB-Festplatten die Hardware-ID über den Laufwerksbuchstaben gefunden werden.
static HDD := []
for objItem in ComObjGet("winmgmts:").ExecQuery("SELECT * FROM Win32_DiskDrive") { ; WHERE InterfaceType='USB' or InterfaceType='SCSI' or InterfaceType='IDE'") {
HDD[A_Index, "DeviceID"] := objItem.DeviceID
devID := objItem.DeviceID
HDD[A_Index, "Model"] := objItem.Model
HDD[A_Index, "SerialNumber"] := trim(objItem.SerialNumber)
HDD[A_Index, "PNPDeviceID"] := objItem.PNPDeviceID ;Hardware-ID
HDD[A_Index, "InterfaceType"] := objItem.InterfaceType
;...
i:=A_Index
for objItem in ComObjGet("winmgmts:").ExecQuery("Associators of {Win32_DiskDrive.DeviceID='" . devID . "'} where AssocClass=Win32_DiskDriveToDiskPartition") {
HDD[i, "Name"] := objItem.DeviceID
devPart:= objItem.DeviceID
for objItem in ComObjGet("winmgmts:").ExecQuery("Associators of {Win32_DiskPartition.DeviceID='" . devPart . "'} where AssocClass=Win32_LogicalDiskToPartition") {
HDD[i, "DriveLetter"] := objItem.DeviceID
devDl:=objItem.DeviceID
for objItem in ComObjGet("winmgmts:").ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE Name='" . devDl . "'") {
HDD[i, "VolumeLabel"] := objItem.VolumeName
HDD[i, "VolumeSerialNumber"] := objItem.VolumeSerialNumber
;....
}
}
}
}
return hdd
}