Skip to content

            Lost ?  |  Need an account:
 
Home >> Downloads Support >> Tools Support >> Add Partion Letter and Volume Name to align.vbs
  • Index
  • Downloads Support
  • Users
  • Search

didi
Member
ranks
useravatar
User Info

Add Partion Letter and Volume Name to align.vbs

Also fixed a problem when StartingOffset is too big
(StartingOffset mod 1024 ==> runtime error overflow)

'============================================================================
'
' DETAILS:    Check all volumes and partitions for proper alignment
'            Tom Hirt <thirt@tcpdump.com>
'            Version 1.0
'            Available at http://www.TCPDump.com
'
'            Known to be compatible on:
'                Windows XP (all versions)
'                Windows Server 2000
'                Windows Server 2003
'                Windows Vista (all versions)
'                Windows Server 2008
'
' Any questions or updates to the script can be made
' on the forums area of www.TCPDump.com.  Please do not contact
' the author directly.
'
'==========================================================================


strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDiskPartitions = objWMIService.ExecQuery _
    ("Select * from Win32_DiskPartition")
For each objPartition in colDiskPartitions
    Dim strDriveLetter: strDriveLetter = PartitionToDrive(objWMIService, objPartition.DeviceID)
    Dim strVolumeName: strVolumeName = PartitionToVolumeLabel(objWMIService, objPartition.DeviceID)

    Wscript.Echo "Device ID: " & objPartition.DeviceID       
    Wscript.Echo "=============================================" & vbcr
    Wscript.Echo "  Partiton Letter:   " & strDriveLetter
    Wscript.Echo "  Volume Name:       " & strVolumeName
    Wscript.Echo "  Number Of Blocks:  " & objPartition.NumberOfBlocks     
    Wscript.Echo "  Block Size:        " & objPartition.BlockSize & " KB"
    Wscript.Echo "  Total Volume Size: " & Round( (objPartition.Size/1024/1024/1024), 0) & " GB"
    Wscript.Echo "  Type:              " & objPartition.Type
    Wscript.Echo "  Starting Offset:   " & objPartition.StartingOffset & " (" & objPartition.StartingOffset/1024 & " KB)"
'    If ( (objPartition.StartingOffset Mod 1024) = 0) Then
    If ( Fix(objPartition.StartingOffset / 1024) = (objPartition.StartingOffset / 1024)) Then
        Wscript.Echo "  Disk Alignment:    Aligned"
        If ( (objPartition.StartingOffset / 1024) < 1024 ) Then
            Wscript.Echo vbCrLf & "  * Please note, this is not necessarly a problem, however we noticed" & _
            vbCrLf & "    your starting offset is less than the Microsoft recommended size" & _
            vbCrLf & "    of 1024 KB.  Please see Microsoft's KB article 929491 for " & _
            vbCrLf & "    additional details."
        End If
    Else
        Wscript.Echo "  Disk Alignment:    NOT ALIGNED!!"
    End If

    Wscript.Echo ""
Next

Private Function PartitionToDrive(objWMIService, DeviceID)
    Dim objLogcialDisks: Set objLogcialDisks = objWMIService.ExecQuery( _
    "ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" & DeviceID & _
    "'} WHERE AssocClass = Win32_LogicalDiskToPartition")

    Dim objLogicalDisk
    For Each objLogicalDisk In objLogcialDisks
        PartitionToDrive = objLogicalDisk.DeviceID
        Exit Function
    Next

    PartitionToDrive = ""
End Function

Private Function PartitionToVolumeLabel(objWMIService, DeviceID)
    Dim objLogcialDisks: Set objLogcialDisks = objWMIService.ExecQuery( _
    "ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" & DeviceID & _
    "'} WHERE AssocClass = Win32_LogicalDiskToPartition")

    Dim objLogicalDisk
    For Each objLogicalDisk In objLogcialDisks
    PartitionToVolumeLabel = objLogicalDisk.VolumeName
    Exit Function
    Next

    PartitionToVolumeLabel = ""
End Function


Administrator has disabled public posting

Board Info

Board Stats:   Total Users: 5126   Total Topics: 222   Total Polls: 1   Total Posts: 16777276   Total Posts Today: 13
User Info:   Newest User :  negosyo   Members Online: 1   Guests Online: 95
Online 
Cogterrit
Generated in 0.138 sec. Queries: 103