2008-09-11 110 views
5

我试图通过查询所有驱动器来确定远程服务器上的可用空间,然后循环直到找到正在寻找的驱动器。有一个更好的方法吗?查询远程服务器上磁盘空间的最佳方式

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 
+2

FWIW,净风格Guildlines具体建议不要使用前缀像 'O' 和 'S'。这是自VB6以来的一个变化。 – 2008-09-11 15:17:30

回答

10

为什么不只是让你的WMI查询只能拉回name ='Y'?

所以:

Dim oQuery As System.Management.ObjectQuery = New System.Management.ObjectQuery("select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3 AND name='Y'") 
相关问题