C# 如何从远程计算机的驱动器获取可用的空闲空间?
我正试图从远程计算机的D驱动器获得自由空间 最后,我发现一个ManagementException未被用户代码“Not Found”处理 这一行给出了错误:fs=m[“FreeSpace”].ToString() 这是我的密码:C# 如何从远程计算机的驱动器获取可用的空闲空间?,c#,wmi,wmi-query,C#,Wmi,Wmi Query,我正试图从远程计算机的D驱动器获得自由空间 最后,我发现一个ManagementException未被用户代码“Not Found”处理 这一行给出了错误:fs=m[“FreeSpace”].ToString() 这是我的密码: ConnectionOptions oConn = new ConnectionOptions(); oConn.Username = "username"; oConn.Password = "password"; oConn.Authority = "ntlmdo
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的方式或直接连接(如果您愿意)将其提供给监视应用程序
让我知道这是否有用
马克斯
编辑:
事实上,我误解了你的问题。我以为你一开始就在寻找一种联系的方式。不过,我会把这个答案留在这里,这样通过搜索找到这个答案的人可能会发现它很有用