![](/img/trans.png)
[英]powershell script to export all groups and members and the groups with in the group members
[英]PowerShell script to return members of multiple security groups
我需要使用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
關於如何正確構建的任何想法將不勝感激!
謝謝,
克里斯
這是更清潔,將放入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
我讓這個為我工作......我會假設你可以把“Group1,Group2等” 或嘗試使用通配符。 我事先將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"
如果您需要友好名稱或其他詳細信息,請將它們添加到select-object查詢的末尾。
如果您不關心用戶所在的群組,並且只想要一個大的用戶列表 - 這就完成了工作:
$Groups = Get-ADGroup -Filter {Name -like "AB*"}
$rtn = @(); ForEach ($Group in $Groups) {
$rtn += (Get-ADGroupMember -Identity "$($Group.Name)" -Recursive)
}
然后結果:
$rtn | ft -autosize
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.