[英]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.