【发布时间】:2012-05-02 05:33:15
【问题描述】:
我正在尝试获取 c:\windows\ntds\ 目录中此 dsa 文件的大小。
我在这里遇到错误,我不知道为什么。错误是“无效查询”。
当我使用不同的 WMI 类时,我似乎经常遇到此错误。
不知道为什么会出现这个错误以及如何解决?
以下代码是否有错误,如何解决?
为什么我们会得到这个 Invalid Query 错误,它的根源是什么?它的内部异常总是为空?
private int getDatabaseFileSize(string DSADatabaseFile, string machineName)
{
string scope = @"\\" + machineName + @"\root\CIMV2";
string query = string.Format("Select FileSize from CIM_DataFile WHERE Name = '{0}'", DSADatabaseFile);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection collection = searcher.Get();
foreach (ManagementObject mobj in searcher.Get())
{
Console.WriteLine("File Size : " + mobj["FileSize"]);
}
return 0;
}
谢谢
【问题讨论】:
-
如果
DSADatabaseFile在查询中,你能说出它的值吗? -
我没关系,我在管理员帐户下运行这个应用程序。 DSADatabaseFile 的值为 C:\Windows\NTDS\ntds.dit,其大小为 16MB。我遇到了异常,因为它将在 foreach 循环中的关键字中到达。
-
试试这个
C:\\Windows\\NTDS\\ntds.dit或链接stackoverflow.com/a/972232/1051198 -
从 Microsoft 下载中心下载 WMI Code Creator:[microsoft.com/en-us/download/…。从 WMI 代码创建器生成要在远程机器上执行的代码,然后尝试。
-
我很久以前就读过那篇文章,然后才提出问题,并且只使用了相同的内容。但没有运气。