【问题标题】:How do I get the available FreeSpace from a drive from a remote computer?如何从远程计算机的驱动器中获取可用的 FreeSpace?
【发布时间】:2012-09-26 14:09:18
【问题描述】:

我正在尝试从远程计算机的 D 盘获取 FreeSpace。

最后,我得到一个 ManagementException 未被用户代码“未找到”处理

这是给我错误的行:fs = m["FreeSpace"].ToString();

这是我的代码:

ConnectionOptions oConn = new ConnectionOptions();

oConn.Username = "username";
oConn.Password = "password";
oConn.Authority = "ntlmdomain:XXX";

ManagementScope scope = new ManagementScope("\\\\Remote_Computer\\root\\CIMV2", oConn);

scope.Connect();

ObjectQuery query = new ObjectQuery("SELECT DeviceID, VolumeName FROM Win32_LogicalDisk where DeviceID = 'D:'");

ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);

ManagementObjectCollection queryCollection = searcher.Get();

foreach (ManagementObject m in queryCollection)
{
      //error happens here
      fs = m["FreeSpace"].ToString();

      freeSpace = Convert.ToInt64(fs);
}

【问题讨论】:

    标签: c# wmi wmi-query


    【解决方案1】:

    我发现了问题所在。

    我的查询错误。我将其替换为:

    "SELECT FreeSpace FROM Win32_LogicalDisk where DeviceID = 'D:'"
    

    问题解决了。

    【讨论】:

      【解决方案2】:

      相信这个post应该有你的答案!!

      基本上,它归结为以下两种方法之一:

      要么导入 GetDiskFreeSpaceEx 并在驱动器路径上使用它,要么在预先连接的网络驱动器上使用 WMI。

      所以你需要有这个驱动器的网络访问权限。

      如果您尝试监控远程系统,您可以轻松创建一个小型应用/服务,该应用/服务将在该机器上运行并不断收集所需信息,然后使用 WCF 之类的工具甚至直接将其提供给监控应用程序如果你想连接。

      如果有帮助,请告诉我,

      最大

      编辑: 实际上,我误解了你的问题。我以为你首先在寻找一种连接方式。不过,我将把这个答案留在这里,以便任何通过搜索找到这个答案的人都可能会发现它很有用。

      【讨论】:

        猜你喜欢
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-26
        • 1970-01-01
        • 1970-01-01
        • 2012-08-28
        相关资源
        最近更新 更多