2008-09-11 34 views
5

Tôi đang cố gắng giải phóng không gian trống trên máy chủ từ xa bằng cách truy vấn tất cả các ổ đĩa và sau đó lặp cho đến khi tôi tìm thấy ổ đĩa tôi đang tìm kiếm. Có cách nào tốt hơn để làm điều này?Cách tốt nhất để truy vấn không gian đĩa trên máy chủ từ xa

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, Net Phong cách Guildlines đặc biệt khuyên không nên sử dụng các tiền tố như 'o' và 's'. Đó là một sự thay đổi kể từ ngày VB6. –

+0

Nếu muốn sử dụng Powershell thay cho VB.NET, bạn có thể tìm thấy một câu trả lời ở http://stackoverflow.com/questions/12159341/powershell-how-to-get-disk-capacity-and-free-space-of- máy tính từ xa –

+0

cuộc sống tiết kiệm! cảm ơn!! –

Trả lời

10

Tại sao không chỉ làm cho truy vấn WMI của bạn chỉ kéo lại nơi tên = 'Y'?

Vì vậy:

Dim oQuery As System.Management.ObjectQuery = New System.Management.ObjectQuery("select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3 AND name='Y'") 
Các vấn đề liên quan