You can easily grab this with WMI.
More infor than you could ever ask for (the Serial Number is what you were looking for):
[script]
'==========================================================================
'
' NAME: GetOSInfo.vbs
'
' AUTHOR: Mark D. MacLachlan , The Spider's Parlor
' URL:
' COPYWRITE (c) 2005 All Rights Reserved
' DATE : 9/18/2005
'
' COMMENT:
'
'==========================================================================
Set WshShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
For Each objItem in colItems
Report = Report & vbCrLf & "BootDevice: " & objItem.BootDevice
Report = Report & vbCrLf & "BuildNumber: " & objItem.BuildNumber
Report = Report & vbCrLf & "BuildType: " & objItem.BuildType
Report = Report & vbCrLf & "Caption: " & objItem.Caption
Report = Report & vbCrLf & "CodeSet: " & objItem.CodeSet
Report = Report & vbCrLf & "CountryCode: " & objItem.CountryCode
Report = Report & vbCrLf & "CreationClassName: " & objItem.CreationClassName
Report = Report & vbCrLf & "CSCreationClassName: " & objItem.CSCreationClassName
Report = Report & vbCrLf & "CSDVersion: " & objItem.CSDVersion
Report = Report & vbCrLf & "CSName: " & objItem.CSName
Report = Report & vbCrLf & "CurrentTimeZone: " & objItem.CurrentTimeZone
Report = Report & vbCrLf & "DataExecutionPrevention_32BitApplications: " & objItem.DataExecutionPrevention_32BitApplications
Report = Report & vbCrLf & "DataExecutionPrevention_Available: " & objItem.DataExecutionPrevention_Available
Report = Report & vbCrLf & "DataExecutionPrevention_Drivers: " & objItem.DataExecutionPrevention_Drivers
Report = Report & vbCrLf & "DataExecutionPrevention_SupportPolicy: " & objItem.DataExecutionPrevention_SupportPolicy
Report = Report & vbCrLf & "Debug: " & objItem.Debug
Report = Report & vbCrLf & "Description: " & objItem.Description
Report = Report & vbCrLf & "Distributed: " & objItem.Distributed
Report = Report & vbCrLf & "EncryptionLevel: " & objItem.EncryptionLevel
Report = Report & vbCrLf & "ForegroundApplicationBoost: " & objItem.ForegroundApplicationBoost
Report = Report & vbCrLf & "FreePhysicalMemory: " & objItem.FreePhysicalMemory
Report = Report & vbCrLf & "FreeSpaceInPagingFiles: " & objItem.FreeSpaceInPagingFiles
Report = Report & vbCrLf & "FreeVirtualMemory: " & objItem.FreeVirtualMemory
Report = Report & vbCrLf & "InstallDate: " & objItem.InstallDate
Report = Report & vbCrLf & "LargeSystemCache: " & objItem.LargeSystemCache
Report = Report & vbCrLf & "LastBootUpTime: " & objItem.LastBootUpTime
Report = Report & vbCrLf & "LocalDateTime: " & objItem.LocalDateTime
Report = Report & vbCrLf & "Locale: " & objItem.Locale
Report = Report & vbCrLf & "Manufacturer: " & objItem.Manufacturer
Report = Report & vbCrLf & "MaxNumberOfProcesses: " & objItem.MaxNumberOfProcesses
Report = Report & vbCrLf & "MaxProcessMemorySize: " & objItem.MaxProcessMemorySize
Report = Report & vbCrLf & "Name: " & objItem.Name
Report = Report & vbCrLf & "NumberOfLicensedUsers: " & objItem.NumberOfLicensedUsers
Report = Report & vbCrLf & "NumberOfProcesses: " & objItem.NumberOfProcesses
Report = Report & vbCrLf & "NumberOfUsers: " & objItem.NumberOfUsers
Report = Report & vbCrLf & "Organization: " & objItem.Organization
Report = Report & vbCrLf & "OSLanguage: " & objItem.OSLanguage
Report = Report & vbCrLf & "OSProductSuite: " & objItem.OSProductSuite
Report = Report & vbCrLf & "OSType: " & objItem.OSType
Report = Report & vbCrLf & "OtherTypeDescription: " & objItem.OtherTypeDescription
Report = Report & vbCrLf & "PlusProductID: " & objItem.PlusProductID
Report = Report & vbCrLf & "PlusVersionNumber: " & objItem.PlusVersionNumber
Report = Report & vbCrLf & "Primary: " & objItem.Primary
Report = Report & vbCrLf & "ProductType: " & objItem.ProductType
Report = Report & vbCrLf & "QuantumLength: " & objItem.QuantumLength
Report = Report & vbCrLf & "QuantumType: " & objItem.QuantumType
Report = Report & vbCrLf & "RegisteredUser: " & objItem.RegisteredUser
Report = Report & vbCrLf & "SerialNumber: " & objItem.SerialNumber
Report = Report & vbCrLf & "ServicePackMajorVersion: " & objItem.ServicePackMajorVersion
Report = Report & vbCrLf & "ServicePackMinorVersion: " & objItem.ServicePackMinorVersion
Report = Report & vbCrLf & "SizeStoredInPagingFiles: " & objItem.SizeStoredInPagingFiles
Report = Report & vbCrLf & "Status: " & objItem.Status
Report = Report & vbCrLf & "SuiteMask: " & objItem.SuiteMask
Report = Report & vbCrLf & "SystemDevice: " & objItem.SystemDevice
Report = Report & vbCrLf & "SystemDirectory: " & objItem.SystemDirectory
Report = Report & vbCrLf & "SystemDrive: " & objItem.SystemDrive
Report = Report & vbCrLf & "TotalSwapSpaceSize: " & objItem.TotalSwapSpaceSize
Report = Report & vbCrLf & "TotalVirtualMemorySize: " & objItem.TotalVirtualMemorySize
Report = Report & vbCrLf & "TotalVisibleMemorySize: " & objItem.TotalVisibleMemorySize
Report = Report & vbCrLf & "Version: " & objItem.Version
Report = Report & vbCrLf & "WindowsDirectory: " & objItem.WindowsDirectory
Next
Set ts = oFSO.CreateTextFile (strComputer & ".txt", ForWriting)
ts.write report
ts.close
WshShell.Run("Notepad " & strComputer & ".txt")
[/script]
I hope you find this post helpful.
Regards,
Mark