winapi - 为什么 WMI 比使用 PsExec 或 PsList 等实用程序慢得多?

标签 winapi wmi psexec sysinternals

我正在使用 WMI 执行各种操作系统管理和查询任务,但第一次 WMI 调用总是需要很长时间(10 到 15 秒)。
当我尝试了 sysinternals 的一些工具时,我发现它们的速度要快得多,我想知道这怎么可能。
例如,PsList 工具如何在 2 秒内返回结果,而对于 wmi,它至少需要 15 秒。大部分时间用于身份验证而不是实际工作,同一台机器的下一次 wmi 查询要快得多。

是否可以查看 sysinternals 实用程序的源代码?他们使用 WMI 还是直接调用 win32 api?

最佳答案

WMI 有很多开销:身份验证/授权访问 WMI 命名空间/DCOM/RPC。它旨在实现简单和安全的管理,而不是为了性能。

推荐阅读:
WMI: Improving your WMI application performance in fan-out scenario

关于winapi - 为什么 WMI 比使用 PsExec 或 PsList 等实用程序慢得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234889/

相关文章:

windows - 为什么说 WinRT 取代了 Windows API

C# 和 psexec 进程输出重定向问题

PSEXEC 本地运行失败 : Error establishing communication with PsExec service

c - 如何使用 C 检索当前 Windows 用户登录?

windows - 在 x64 64 位 Windows 上使用 NASM(和 GoLink)的 Hello World

.net - ILockBytesOnHGlobal WriteAt 性能随时间降低

vbscript - 如何从 WMI 中获取超过 97 行?

c# - 通过 C# 或 api 检测 VPN

c# - ASSOCIATOR OF 和 ManagementObjectCollection 方法 GetRelated 之间的区别

batch-file - DOS 批处理程序 pSEXEC