【发布时间】:2021-07-13 21:03:53
【问题描述】:
我制作了以下列出组成员的命令:
gwmi win32_group -filter 'Name="Administrators"'|%{$_.GetRelated('Win32_UserAccount')} | select Name
上面的命令可以运行,但是需要很长时间才能完成,有没有办法微调上面的命令,让它运行得更快?
请注意,我仅限于 PowerShell 2.0。
编辑: 似乎上面的命令也在查询所有 DC 帐户。如何只查询本地用户?
【问题讨论】:
-
如果您已加入域,那么您的查询将尝试查询域用户和组,
GetRelated()方法也是如此。这是一个臭名昭著的性能瓶颈。您可以尝试使用Get-WmiObject -ClassName Win32_Group -Filter "Name='Administrators' and Domain='$env:computername'"将其过滤到本地帐户,但我认为GetRelated()会做同样的事情。我不记得$env:computername是否适用于 PSv2,但它只是主机名。 -
您是对的,该命令还查询域用户!我已经尝试测试您仅查询本地用户的建议,但是,我没有成功,该命令似乎只列出了组名而不列出其用户成员,我做错了什么吗? Get-WmiObject -ClassName Win32_Group -Filter "Name='Administrators' and Domain='$env:computername'" |选择名称
标签: windows powershell wmi powershell-2.0 get-wmiobject