获得单个用户所属的所有组的最干净(最快)的方式是什么? 我使用PowerShell 2.0对Citrix中的login用户进行计数,并将其从Active Directory中分组。 所有用户都是“VDI-Billing”组中的一个子组的成员,但用户与VDI-Billing组之间的嵌套组数量并不总是相同。 所以我希望能够得到所有组(包括嵌套的)与VDI-Billing组(第一级)的成员列表进行比较,所以我得到一个概述。
例:
VDI-Billing有一个NL-VDI-T-Systems成员组。 这有多个组(自己有多个组)。 但是概述必须包括NL-VDI-T-Systems的所有用户(子)成员。
因此,在总览中我应该得到:NL-VDI-T-Systems:22 ITA-VDI-T-Systems:25等等。
任何人都知道一个整洁的小动作?
我们编写的脚本一直在做我的工作! 通过Quest ActiveRoles管理工具,可以更轻松地使用Powershell WAY中的Active Directory对象进行自由管理。
Add-PSSnapin Quest.ActiveRoles.ADManagement
。 如果要编写使用AD工具的scipt,只需将该命令添加到脚本的第一行即可。 Get-QADUser 'DOMAIN\USER' | foreach -Process {$_.memberof, $_.nestedmemberof}
Get-QADUser 'DOMAIN\USER' | foreach -Process {$_.memberof, $_.nestedmemberof}
可以通过在命令末尾添加Out-CSV
或Out-File
cmdlet来将其管理为文本文件或CSV。 这对我来说就像一个魅力。 让我知道如果你有任何问题!
〜丹
最好的方法是利用TokenGroups属性,而不是自己执行递归扩展。 你可以在这里和这里找到例子。
编辑: 一个更简洁的例子