【问题标题】:WMI query is haltingWMI 查询正在停止
【发布时间】:2017-10-10 00:05:48
【问题描述】:

当我在 powershell 中运行此命令时,我没有得到任何响应。我必须杀死 powershell,因为一旦查询完成,我就无法取消查询。

Get-WMIObject -query 'SELECT * from Win32_UserAccount'

可以采取哪些步骤来了解为什么会发生这种情况?

谢谢!

【问题讨论】:

  • 查询 Active Directory 是检索域用户帐户的首选方法。

标签: windows powershell wmi wmi-query


【解决方案1】:

对于大多数命令,我建议添加-Verbose,但我认为Get-WMIObject 不会在该流上输出太多有用的信息。

至于它为什么挂起,请记住,该命令将枚举您域上的 每个 用户帐户(不仅仅是本地计算机)。如果您在大型网络上运行它,则需要一些时间。即使是我的大约 800 个用户对象的小型网络也需要 15 秒才能运行。

如果您使用的是大型网络...让它运行,它可能需要一段时间。

关于这个类的guidance from Microsoft是:

注意因为 NameDomain 都是关键属性,在大型网络上枚举 Win32_UserAccount 可能会产生负面影响影响性能。调用 GetObject 或查询特定实例的影响较小。

它仍然需要很长时间才能运行,但它的 CIM 版本要快一点(在我的例子中是 12.5 秒而不是 15 秒):

Get-CimInstance -ClassName Win32_UserAccount

或者,如果您想坚持查询格式:

Get-CimInstance -Query 'SELECT * from Win32_UserAccount'

【讨论】:

  • 确实,当我的机器处于飞行模式时,该命令能够快速执行。一定是网络太大是我连上网络无法运行的原因。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 2017-10-12
  • 2011-04-16
  • 2011-01-05
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
相关资源
最近更新 更多