我需要返回使用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
如何正确的结构,将不胜感激任何想法!
谢谢,
克里斯
如果你不在乎什么组的用户均,只是希望用户的一大醇”名单 - 这样做的工作:
$Groups = Get-ADGroup -Filter {Name -like "AB*"}
$rtn = @(); ForEach ($Group in $Groups) {
$rtn += (Get-ADGroupMember -Identity "$($Group.Name)" -Recursive)
}
然后结果:
$rtn | ft -autosize
这是清洁,将放在一个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
Get-ADGroupMember "Group1" -recursive | Select-Object Name | Export-Csv c:\path\Groups.csv
我得到这个工作对我来说...我会认为你可以把“组1,组2,等等。”或者尝试一个通配符。我做了预加载AD到PowerShell的前手:
Get-Module -ListAvailable | Import-Module
这会给你一个组的列表,每个组的成员。
param
(
[Parameter(Mandatory=$true,position=0)]
[String]$GroupName
)
import-module activedirectory
# optional, add a wild card..
# $groups = $groups + "*"
$Groups = Get-ADGroup -filter {Name -like $GroupName} | Select-Object Name
ForEach ($Group in $Groups)
{write-host " "
write-host "$($group.name)"
write-host "----------------------------"
Get-ADGroupMember -identity $($groupname) -recursive | Select-Object samaccountname
}
write-host "Export Complete"
如果你想在好记的名称,或其他细节,将它们添加到选择对象查询结束。