【问题标题】:Response size limitations in WMIWMI 中的响应大小限制
【发布时间】:2016-01-29 19:50:23
【问题描述】:

我需要使用 WMI 从远程服务器获取自定义用户对象。用户数可能 > 500,000。运行以下代码是否安全?

var queryStr = "select * from MyUserClass";
var query = new SelectQuery(queryStr);
var searcher = new ManagementObjectSearcher(MngScope, query);

var result = searcher.Get();

我找不到任何有关响应大小限制的信息。 我担心数据大小将超过以太网响应的阈值。还是ManagementObjectSearcher按顺序获取数据然后返回结果?

此外,WQL 中似乎不存在 COUNT 关键字。 那么我怎样才能得到对象的数量呢?

【问题讨论】:

    标签: c# wmi wql


    【解决方案1】:

    正如您在 this question 中看到的那样,无法限制 WQL 中的结果数量。

    话虽如此,系统没有理由拥有超过 500,000 个用户。

    如果您害怕系统“欺骗”您并返回这么多用户,您可以通过在另一个 Thread 中执行来限制查询时间。

    【讨论】:

    • 我担心数据大小会超过以太网响应的阈值。还是ManagementObjectSearcher按顺序获取数据然后返回结果?
    • 即使数据不会按顺序返回,您也不应该担心您的以太网,您应该担心您的应用程序冻结,即使结果(出于某些非常不标准的原因)是太大了,只设置一个超时。尽管如此,标准系统永远不会为您提供这么多用户......
    • 代码作为服务在单独的线程中运行。它是一个自定义对象,我需要将它们与我的系统同步,用户数可能是公司的员工数。但是我没有机会在发布之前用这么多的数据测试我的代码。也许我需要找到远程服务器上存在的一些系统对象并且数量很大,然后尝试提取它们。无论如何,感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    相关资源
    最近更新 更多