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

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

我想要一个脚本行来将我的 AD 中的所有用户及其所属的所有组导出到 CSV。

我更希望在 powershell 中完成它,但 dsquery/dsget 确实是一个不错的选择。

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

$user="管理员" (GET-ADUSER -Identity $user -Properties MemberOf | Select-Object MemberOf).MemberOf

但我希望 $user 变量的循环能够被参考文本文件中的每一行所改变。

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

答案1

安装任务 CMDlet然后运行此代码:

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 条记录,因此用户和组可能会多次出现。如果您想要其他字段,只需编辑语句即可Select-Object。使用$memberships | gm查看用户的所有可能性。如果您想要组的更多字段,请使用Get-QADGroup | gm,然后您需要通过添加新的来添加这些字段NoteProperty

如果你真的不关心更多选项,这里有一个你可以在终端中混合使用的单行命令:

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

相关内容