列出具有每个组名称的多个AD组中的用户的命令

时间:2018-11-16 18:27:20

标签: powershell active-directory

我正在尝试获取AD组成员的列表,并分别列出每个组的成员。我可以列出所有组的所有成员,但是如何区分每个组的成员?

这是我正在运行的:

get-ADGroup -Server "<server_name>" -filter {Name -like  "*<common_text_in_each_group's_name*"} | get-ADGroupMember

不幸的是,我试图以单线方式执行此操作,因为当我尝试创建ps1文件并运行它时,出现一个错误,它找不到本地计算机登录到的域中的组。即,-Server参数不起作用。所有组都与我在其上运行PS的计算机所在的域不同。

当我尝试创建脚本/ ps1文件时,这就是我尝试过的:

$Groups = (Get-AdGroup -server '<server_name>' -filter * | Where {$_.name -like "*_some_text*"} | select name -expandproperty name)


$Table = @()

$Record = [ordered]@{
"Group Name" = ""
"Name" = ""
"Username" = ""
}



Foreach ($Group in $Groups)
{

$Arrayofmembers = Get-ADGroupMember -identity $Group | select name,samaccountname

foreach ($Member in $Arrayofmembers)
{
$Record."Group Name" = $Group
$Record."Name" = $Member.name
$Record."UserName" = $Member.samaccountname
$objRecord = New-Object PSObject -property $Record
$Table += $objrecord

}

}

$Table | export-csv "C:\temp\x_Groups.csv" -NoTypeInformation

1 个答案:

答案 0 :(得分:0)

我相信您也只需将-Server参数传递给Get-ADGroupMember

$Arrayofmembers = Get-ADGroupMember -identity $Group -server '<server_name>' | select name,samaccountname

那样有点愚蠢。