📜 VBScript (WSH)

Get Logical Disks Report to File (VBScript)

Queries Win32_LogicalDisk via WMI and writes Logical Disks to a timestamped text file, handy for scheduled logon/logoff scripts.

By WindowsScripting.com · 1.3 KB
GetLogicalDiskReportToFile.vbs
' ============================================================
' GetLogicalDiskReportToFile.vbs
'
' Reports Logical Disks via WMI (Win32_LogicalDisk) and writes the results to a
' timestamped text file next to this script.
'
' Usage: cscript GetLogicalDiskReportToFile.vbs
' ============================================================

Option Explicit

Dim objWMIService, colItems, objItem
Dim objFSO, objFile, strOutPath, itemCount

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT DeviceID, VolumeName, Size, FreeSpace, DriveType FROM Win32_LogicalDisk")

Set objFSO = CreateObject("Scripting.FileSystemObject")
strOutPath = objFSO.GetParentFolderName(WScript.ScriptFullName) & "\logicaldisk-report_" & _
             Replace(FormatDateTime(Now, 2), "/", "-") & ".txt"
Set objFile = objFSO.CreateTextFile(strOutPath, True)

itemCount = 0
For Each objItem In colItems
        objFile.WriteLine "DeviceID: " & objItem.DeviceID
        objFile.WriteLine "VolumeName: " & objItem.VolumeName
        objFile.WriteLine "Size: " & objItem.Size
        objFile.WriteLine "FreeSpace: " & objItem.FreeSpace
        objFile.WriteLine "DriveType: " & objItem.DriveType
        objFile.WriteLine String(40, "-")
        itemCount = itemCount + 1
Next

objFile.Close

WScript.Echo itemCount & " Logical Disks written to: " & strOutPath