如何从远程计算机的硬盘获得可用自由空间?(How do I get the available Fr

2019-09-23 01:08发布

我试图从远程计算机的d驱动器的自由空间。

接近年底,我得到一个ManagementException是由用户代码未处理的“找不到”

这是给我的错误的行:FS = M [“自由空间”]的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);
}

Answer 1:

我发现了什么问题了。

我的查询是错误的。 我取代它:

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

而问题就迎刃而解了。



Answer 2:

我相信,这个职位应该有一个为你解答!

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

要么你导入GetDiskFreeSpaceEx和使用它的路径上的驱动器,或使用WMI您事先连接网络驱动器上。

所以,你需要有此驱动器的网络访问。

如果你想监控远程系统,您可以轻松地创建一个小的应用程序/服务,将那台机器上运行,并不断收集所需要的信息,然后使用类似WCF或者如果你连直接连接,其提供给监控中的应用想。

让我知道这是有帮助的,

马克斯

编辑:其实,我误解你的问题。 我还以为你正在寻找一种方式,以在第一时间连接。 在这里我要离开这个答案,不过,让任何人发现这个通过搜索,也许会发现它是有用的。



文章来源: How do I get the available FreeSpace from a drive from a remote computer?
标签: c# wmi wmi-query