Last active
October 30, 2019 15:27
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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