gpt4 book ai didi

用于列出组成员的 Windows PowerShell 命令 - 微调

转载 作者:行者123 更新时间:2023-12-05 06:01:32 27 4
gpt4 key购买 nike

我精心制作了下面列出组成员的命令:

gwmi win32_group -filter 'Name="Administrators"'|%{$_.GetRelated('Win32_UserAccount')} | select Name

上面的命令有效,但是它需要很长时间才能完成,有没有办法微调上面的命令以使其运行得更快?

请注意,我仅限于 PowerShell 2.0。

编辑:似乎上面的命令也在查询所有 DC 帐户。如何只查询本地用户?

最佳答案

调整

管道中较慢的部分是调用 .GetRelated() ,因为这将评估 WMI 类实例的关联,这可能是一个巨大的列表。所以你必须小心并尽可能地过滤。你可以这样做:

(Get-WmiObject -Class Win32_Group -Filter "LocalAccount = TRUE and SID = 'S-1-5-32-544'").GetRelated("Win32_Account", "Win32_GroupUser", "", "", "PartComponent", "GroupComponent", $false, $null) | Select-Object -Property Name

请注意,我使用 Administrators 组的众所周知的 SID 来查找它,因为它的名称在其他语言中可能有所不同。我还查询了 Win32_Account 而不是 Win32_UserAccount 以真正返回 Administrators 组的所有成员,其中可能包括其他组而不仅仅是用户帐户。当然,您可以根据需要更改此设置。您可以在 this article 中阅读有关此调整的更多信息.

不同的方法

  1. 另一种方法是在一个 WMI 查询中定义所有内容:

    Get-WmiObject -Query "ASSOCIATORS OF {Win32_Group.Domain='$env:COMPUTERNAME',Name='Administrators'} WHERE AssocClass=Win32_GroupUser ResultRole=PartComponent" | Select-Object -Property Name
  2. 此外,您还可以使用net工具查询Administrators组的成员:

    net localgroup Administrators

    缺点:您必须解析文本输出。

关于用于列出组成员的 Windows PowerShell 命令 - 微调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67165848/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com