Sprawa dość prosta do wykonania używając WMI i CIM_BIOSElement
result=-1
Set objSet = GetObject("WinMgmts:").ExecQuery("select * from CIM_BIOSElement")
If Err.Number <> 0 or objSet.count=0 Then
Wscript.Echo "Something went wrong " & Hex(err.number), err.description, err,source
result=1
End If
For Each obj in objSet
If Len(obj.SerialNumber)>4 and Len(obj.SerialNumber)<60 Then
sSerial=obj.SerialNumber
result=0
End If
Next
WScript.echo sSerial
WScript.Quit(result)
W starszych modelach laptopów zdarzało się, że Windows rejestrował w WMI 2 numery seryjne laptopa i stacji dokującej.
Sprawdzenie długości zwróconego stringa aż do 60 znaków ma za zadanie objąć maszyny wirtualne na vmware które mają numery seryjne długie na 55 znaków.