2008-09-11 106 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'") 
相關問題