Можно попробовать посредством WMI:
Код:
AutoItSetOption("MustDeclareVars", 1)
Local $sTargetVolumeSerialNumber = "ABCDEFGH"
Local $bFound = False
Local $oSWbemServicesEx = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Local $cSWbemObjectSet = $oSWbemServicesEx.ExecQuery("SELECT * FROM Win32_LogicalDisk", "WQL", 0)
Local $oSWbemObjectEx
If $cSWbemObjectSet.Count > 0 Then
For $oSWbemObjectEx In $cSWbemObjectSet
ConsoleWrite("Drive: [" & $oSWbemObjectEx.Name & "]" & @TAB & "Serial number: [" & $oSWbemObjectEx.VolumeSerialNumber & "]" & @CRLF) ; Для отладки
If $oSWbemObjectEx.VolumeSerialNumber = $sTargetVolumeSerialNumber Then
ConsoleWrite("Found on drive [" & $oSWbemObjectEx.Name & "]" & @CRLF) ; Для отладки
$bFound = True
ExitLoop
EndIf
Next
EndIf
$oSWbemObjectEx = 0
$cSWbemObjectSet = 0
$oSWbemServicesEx = 0
If Not $bFound Then
Exit(1)
EndIf
;
; Здесь Ваши операторы
;
Exit(0)