【问题标题】:Best way to query disk space on remote server查询远程服务器上磁盘空间的最佳方法
【发布时间】:2008-09-11 14:40:12
【问题描述】:

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

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

【问题讨论】:

  • FWIW,.Net Style Guildlines 特别建议不要使用像 'o' 和 's' 这样的前缀。这是自 VB6 天以来的变化。
  • 如果想使用 Powershell 而不是 VB.NET,您可以在stackoverflow.com/questions/12159341/…找到一行答案

标签: vb.net wmi


【解决方案1】:

为什么不让你的 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'")

【讨论】:

    猜你喜欢
    • 2014-09-09
    • 2013-08-16
    • 2014-02-20
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多