如何列出 AD 组中的所有成员并显示启用和禁用的用户?

如何列出 AD 组中的所有成员并显示启用和禁用的用户?

我正在尝试获取 AD 组中所有成员的列表,其中显示活跃 \ 非活跃用户。目的是获取组中的所有成员并列出具有管理员权限的成员。

我执行了以下命令:

$GROUPNAME = "Domain Admins" 
Get-ADGroupMember -identity $GROUPNAME -Recursive | Select name, SamAccountName, objectclass | Sort-Object Name

尝试与 Get-ADUser -Filter {Enabled -eq $false} 结合使用,但我需要第一个 cmdlet 来为我输出用户,这样我才能使用 Get-ADuser 进行过滤。

提前致谢

答案1

这样做:

$groupname = "Domain Admins"
$users = Get-ADGroupMember -Identity $groupname | ? {$_.objectclass -eq "user"}
foreach ($activeusers in $users) { Get-ADUser -Identity $activeusers | ? {$_.enabled -eq $true} | select Name, SamAccountName, UserPrincipalName, Enabled }

如果要禁用,只需替换最后一个 cmdlet:

foreach ($activeusers in $users) { Get-ADUser -Identity $activeusers | ? {$_.enabled -eq $false} | select Name, SamAccountName, UserPrincipalName, Enabled }

答案2

使用上面 Marlon 的回答。如果您想将其作为列表输出为文本或 CSV,您可以这样做:

$groupname = "Domain Admins"
$users = Get-ADGroupMember -Identity $groupname | ? {$_.objectclass -eq "user"}
$result = @()
foreach ($activeusers in $users) { $result += (Get-ADUser -Identity $activeusers | ? {$_.enabled -eq $true} | select Name, SamAccountName, UserPrincipalName, Enabled) }
$result | Export-CSV  -NoTypeInformation .\active_domain_admins.csv

如果您只想输出到文本文件,您可以将最后一行切换为:

$result | Out-File .\active_domain_admins.txt

答案3

您正在寻找这样的东西吗?

$GrpName = '[Group Name]'
$ExportPath = 'C:\\Temp\\' + $GrpName + '-GroupMembers.csv'
$Grp = Get-ADGroup $GrpName | Get-ADGroupMember -Recursive | Get-ADUser -Properties Name,Mail,Enabled  | Select-Object Name,Mail,Enabled | Where-Object {$_.Enabled -eq $True}
$Grp.Count
$Grp | Export-Csv -NoType $ExportPath

答案4

我的“一句话”。感谢以上回答。

$GROUPNAME = "Domain Admins" 
Get-ADGroupMember $GROUPNAME | Get-ADUser | Where-Object -Property enabled -eq $true | select name

相关内容