繁体   English   中英

如何从远程计算机的驱动器中获取可用的FreeSpace?

[英]How do I get the available FreeSpace from a drive from a remote computer?

我正在尝试从远程计算机的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);
}

我发现了问题所在。

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

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

问题解决了。

我相信这篇文章应该为您解答!!

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

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

因此,您需要对该驱动器具有网络访问权限。

如果要监视远程系统,则可以轻松创建一个将在该计算机上运行的小型应用程序/服务,并不断收集所需的信息,然后使用WCF或直接连接(如果您愿意)将其提供给监视应用程序想。

让我知道这是否有帮助,

最高

编辑:其实,我误解了你的问题。 我以为您一直在寻找一种连接方式。 不过,我将在此处保留此答案,以便任何人通过搜索找到它可能会觉得有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM