我想要一个单一的脚本行导出到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"