I am trying to nail down free space on a remote server by querying all the drives and then looping until I find the drive I am seeking.
Is there a better way to do this?
Dim oConn As New ConnectionOptions Dim sNameSpace As String = '\\mnb-content2\root\cimv2' Dim oMS As New ManagementScope(sNameSpace, oConn) Dim oQuery As System.Management.ObjectQuery = New System.Management.ObjectQuery('select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3') Dim oSearcher As ManagementObjectSearcher = New ManagementObjectSearcher(oMS, oQuery) Dim oReturnCollection As ManagementObjectCollection = oSearcher.Get() Dim oReturn As ManagementObject For Each oReturn In oReturnCollection 'Disk name Console.WriteLine('Name : ' + oReturn('Name').ToString()) 'Free Space in bytes Dim sFreespace As String = oReturn('FreeSpace').ToString() If Left(oReturn('Name').ToString(), 1) = 'Y' Then Console.WriteLine(sFreespace) End If Next
Why not just make your WMI query only pull back where name=’Y’?
So: