我正试图从远程计算机的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);
}
答案 0 :(得分:2)
我发现了问题所在。
我的查询错了。我把它改为:
"SELECT FreeSpace FROM Win32_LogicalDisk where DeviceID = 'D:'"
问题解决了。
答案 1 :(得分:0)
我相信这个post应该有你的答案!!
基本上,它归结为两种方法之一:
导入GetDiskFreeSpaceEx并在驱动器路径上使用它,或者在预先连接的网络驱动器上使用WMI。
因此您需要具有此驱动器的网络访问权限。
如果您正在尝试监控远程系统,您可以轻松创建一个小型应用程序/服务,该应用程序/服务将在该计算机上运行并不断收集所需信息,然后使用WCF或甚至直接提供给监控应用程序如果你想要连接。
请告诉我这是否有用,
最高
修改强> 实际上,我误解了你的问题。我以为你一开始就在寻找一种连接方式。我会在这里留下这个答案,所以任何通过搜索找到这个的人都会发现它很有用。