我需要使用 PowerShell 返回多个安全组的所有成员。很方便地,所有组都以相同的字母开头。
我可以使用以下代码返回所有相关安全组的列表:
Get-ADGroup -filter 'Name -like"ABC*"' | Select-Object Name
我知道我可以使用以下代码返回特定安全组的成员资格列表:
Get-ADGroupMember "Security Group Name" -recursive | Select-Object Name
然而,我似乎无法将它们放在一起,尽管我认为我所追求的应该看起来像这样(请随时纠正我,这就是我在这里的原因!):
$Groups = Get-ADGroup -filter 'Name -like"ABC*"' | Select-Object Name
ForEach ($Group in $Groups) {Get-ADGroupMember -$Group -recursive | Select-Object Name
任何有关如何正确构建的想法将不胜感激!
Thanks,
Chris
这更干净,并且会放入 csv 中。
Import-Module ActiveDirectory
$Groups = (Get-AdGroup -filter * | Where {$_.name -like "**"} | 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\SecurityGroups.csv" -NoTypeInformation
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)