Лучший способ запросить дисковое пространство на удаленном сервере

StackOverflow https://stackoverflow.com/questions/56715

  •  09-06-2019
  •  | 
  •  

Вопрос

Я пытаюсь выделить свободное место на удаленном сервере, запрашивая все диски, а затем выполняя цикл до тех пор, пока не найду нужный диск.
Есть ли лучший способ сделать это?

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
Это было полезно?

Решение

Почему бы просто не сделать так, чтобы ваш запрос 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'")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top