(view source code of bootdriv.vbs as plain text)
' Check command line parameters (none required)
If WScript.Arguments.Count > 0 Then
strMsg = vbCrLf _
& "BootDriv.vbs, Version 1.00" & vbCrLf _
& "Return drive letter from which computer was booted" _
& vbCrLf & vbCrLf _
& "Usage: CSCRIPT BOOTDRIV.VBS" _
& vbCrLf & vbCrLf _
& "Written by Rob van der Woude" & vbCrLf _
& "http://www.robvanderwoude.com" _
& vbCrLf & vbCrLf _
& "Code to associate partitions with drive letters found on" & vbCrLf _
& "TechNet Script Center, section Disks and File Systems:" & vbCrLf _
& "http://www.microsoft.com/technet/treeview/default.asp?url=/technet/scriptcenter/dfs/ScrDFS37.asp" & vbCrLf _
& "(C) 2003 Microsoft Corporation"
WScript.Echo strMsg
WScript.Quit(1)
End If
' Don't stop at errors
On Error Resume Next
' For the local computer only
strComputer = "."
' Use WMI to get boot drive as disk and partition numbers
Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" )
Set colItems = objWMIService.ExecQuery( "Select * From Win32_DiskPartition Where BootPartition = true", , 48 )
For Each objItem in colItems
strBootDiskIndex = objItem.DiskIndex
strBootPartition = objItem.Index
Next
' Format the result to compare it with the result of next query
strBootDisk = "Disk #" & strBootDiskIndex & ", Partition #" & strBootPartition
' Associate partitions with drive letters.
' Script found on TechNet Script Center, section Disks and File Systems:
' http://www.microsoft.com/technet/treeview/default.asp?url=/technet/scriptcenter/dfs/ScrDFS37.asp
' (C) 2003 Microsoft Corporation
Set objWMIService = GetObject( "winmgmts:{ impersonationLevel=Impersonate }!//" & strComputer )
Set colDiskDrives = objWMIService.ExecQuery( "Select Caption, DeviceID FROM Win32_DiskDrive" )
For Each objDiskDrive In colDiskDrives
strEscapedDeviceID = Replace( objDiskDrive.DeviceID, "\", "\\", 1, -1, vbTextCompare )
Set colDiskPartitions = objWMIService.ExecQuery( "Associators Of {Win32_DiskDrive.DeviceID=""" & strEscapedDeviceID & """} Where AssocClass = Win32_DiskDriveToDiskPartition" )
For Each objDiskPartition In colDiskPartitions
Set colLogicalDisks = objWMIService.ExecQuery( "Associators Of {Win32_DiskPartition.DeviceID=""" & objDiskPartition.DeviceID & """} Where AssocClass = Win32_LogicalDiskToPartition" )
For Each objLogicalDisk In colLogicalDisks
If objDiskPartition.DeviceID = strBootDisk Then
WScript.Echo vbCrLf & "Boot Drive = " & objLogicalDisk.DeviceID
End If
Next
Next
Next
page last modified: 2024-04-16; loaded in 0.0078 seconds