如何列出所有Active Directory用户及其组成员身份

我想要一个单一的脚本行导出到CSV所有用户在我的广告与他们所有的组成员。

我宁愿它在PowerShell中,但dsquery / dsget是一个很好的select。

编辑:我试图做这样的事情:

$ user =“administrator”(GET-ADUSER -Identity $ user -Properties MemberOf | Select-Object MemberOf).MemberOf

但我想有一个循环的$用户variables由参考文本文件中的每一行更改。

这是我不知道如何循环它的观点。

安装Quest CMDlets ,然后运行下面的代码:

Add-PSSnapin Quest.ActiveRoles.ADManagement $memberships = @() Get-QADGroup -SizeLimit 0 | Foreach-Object { $NameGroup = $_.Name Write-Host "Working with $NameGroup" $membership = Get-QADGroupMember $_.DN -Enabled -SizeLimit 0 if ($membership -ne $null ) { $membership | Add-Member -type NoteProperty -name AuditGroupUserIsMemberOf -value $_.Name $memberships += $membership } } $memberships | Select-Object AuditGroupUserIsMemberOf, NTAccountname | Export-Csv "GroupsWithUsers.csv" 

这会为每个组用户连接提供1条logging,因此需要多次出现用户和组。 如果您不想使用其他字段,则可以编辑Select-Object语句。 使用$memberships | gm $memberships | gm看到用户的所有可能性。 如果您需要更多的字段,请使用Get-QADGroup | gm Get-QADGroup | gm ,那么你需要通过添加一个新的NoteProperty来添加这些。

如果你真的不关心更多的select,这里是一个单线程,你可以在terminal中捣烂:

 Get-QADGroup -sizeLimit 0 | select @{name="Group";expression={$_.name}} -expand members | select Group,@{n='User';e={ (Get-QADObject $_).NTAccountName}} | Export-Csv "MyUsersAndGroups.csv"