Skip to content

Instantly share code, notes, and snippets.

@mccbryan3
Last active October 30, 2019 15:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mccbryan3/8b034095539a6e26e500bb171e9a8320 to your computer and use it in GitHub Desktop.
Save mccbryan3/8b034095539a6e26e500bb171e9a8320 to your computer and use it in GitHub Desktop.
Run this on a machine to get LogicalDIsks info for all LogicalDIsks that are Partitoned
var computer = "."
var wmi = GetObject("winmgmts://" + computer + "/root/CIMv2")
var lv = wmi.ExecQuery("SELECT * FROM Win32_LogicalDiskToPartition")
i=0
for (var e = new Enumerator(lv); !e.atEnd(); e.moveNext())
{
var z = e.item()
driveLetter = z.Dependent.split("=")[z.Dependent.split("=").length - 1].replace(/\"/g,"")
WScript.Echo("DriveLetter: " + driveLetter)
partition = z.Antecedent.split("=")[z.Antecedent.split("=").length - 1].replace(/\"/g,"")
partLong = z.Antecedent
WScript.Echo("Partiton: " + partition)
serialNumber = findDeviceSerial(partLong)
WScript.Echo("SerialNumber: " + serialNumber )
lvSize = findLogicalDiskSize(driveLetter)
WScript.Echo("VolumeSize: " + lvSize)
WScript.Echo()
}
function findLogicalDiskSize(ld) {
var drive = wmi.ExecQuery("SELECT * FROM Win32_LogicalDisk")
for (var e = new Enumerator(drive); !e.atEnd(); e.moveNext())
{
var z = e.item()
if(z.DeviceID == ld) {
size = (z.Size / Math.pow(1024, 3)).toFixed(2)
}
}
return size
}
function findDeviceSerial(partiton_long) {
var drive = wmi.ExecQuery("SELECT * FROM Win32_DiskDriveToDiskPartition")
for (var e = new Enumerator(drive); !e.atEnd(); e.moveNext())
{
var z = e.item()
if(partiton_long == z.Dependent ) {
physicalDrive = z.Antecedent.split("\\")[z.Antecedent.split("\\").length -1].replace(/"/g,"")
var disk = wmi.ExecQuery("SELECT * FROM Win32_DiskDrive")
for (var e = new Enumerator(disk); !e.atEnd(); e.moveNext())
{
var z = e.item()
if(z.DeviceID.indexOf(physicalDrive) > 0)
{
serialNumber = (z.serialNumber)
}
}
}
}
return serialNumber
}
var computer = ""
var user = ""
var password = ""
var loc = new ActiveXObject("WbemScripting.SWbemLocator");
var wmi = loc.ConnectServer(computer, "/root/CIMv2", user, password)
var windowsDisks = listWinDiskInfo(computer, user, password)
WScript.Echo(windowsDisks)
// Functions
function listWinDiskInfo(computer, user, password) {
var lv = wmi.ExecQuery("SELECT * FROM Win32_LogicalDiskToPartition")
var returnData = []
var lineData = []
for (var e = new Enumerator(lv); !e.atEnd(); e.moveNext())
{
var z = e.item()
driveLetter = z.Dependent.split("=")[z.Dependent.split("=").length - 1].replace(/\"/g,"")
partition = z.Antecedent.split("=")[z.Antecedent.split("=").length - 1].replace(/\"/g,"")
partLong = z.Antecedent
serialNumber = findDeviceSerial(partLong)
lvSize = findLogicalDiskSize(driveLetter)
lineData = [driveLetter, partition, serialNumber]
// WScript.Echo(lineData)
returnData.push(lineData)
// WScript.Echo("DriveLetter: " + driveLetter)
// WScript.Echo("Partiton: " + partition)
// WScript.Echo("SerialNumber: " + serialNumber )
// WScript.Echo("VolumeSize: " + lvSize)
// WScript.Echo()
}
return returnData
}
function findLogicalDiskSize(ld) {
var drive = wmi.ExecQuery("SELECT * FROM Win32_LogicalDisk")
for (var e = new Enumerator(drive); !e.atEnd(); e.moveNext())
{
var z = e.item()
if(z.DeviceID == ld) {
size = (z.Size / Math.pow(1024, 3)).toFixed(2)
}
}
return size
}
function findDeviceSerial(partiton_long) {
var drive = wmi.ExecQuery("SELECT * FROM Win32_DiskDriveToDiskPartition")
for (var e = new Enumerator(drive); !e.atEnd(); e.moveNext())
{
var z = e.item()
if(partiton_long == z.Dependent ) {
physicalDrive = z.Antecedent.split("\\")[z.Antecedent.split("\\").length -1].replace(/"/g,"")
var disk = wmi.ExecQuery("SELECT * FROM Win32_DiskDrive")
for (var e = new Enumerator(disk); !e.atEnd(); e.moveNext())
{
var z = e.item()
if(z.DeviceID.indexOf(physicalDrive) > 0)
{
serialNumber = (z.serialNumber)
}
}
}
}
return serialNumber
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment