it-swarm.com.de

PowerShell-Skript zum Zurückgeben von Mitgliedern mehrerer Sicherheitsgruppen

Ich muss alle Mitglieder mehrerer Sicherheitsgruppen mithilfe von PowerShell zurückgeben. Handlich beginnen alle Gruppen mit den gleichen Buchstaben.

Ich kann eine Liste aller relevanten Sicherheitsgruppen mit folgendem Code zurückgeben:

Get-ADGroup -filter 'Name -like"ABC*"' | Select-Object Name

Und ich weiß, dass ich die Mitgliederliste einer bestimmten Sicherheitsgruppe mit folgendem Code zurückgeben kann:

Get-ADGroupMember "Security Group Name" -recursive | Select-Object Name

Ich kann sie jedoch nicht zusammenstellen, obwohl ich denke, dass das, was ich suche, in etwa so aussehen sollte (bitte korrigieren Sie mich, deshalb bin ich hier!)

$Groups = Get-ADGroup -filter 'Name -like"ABC*"' | Select-Object Name
ForEach ($Group in $Groups) {Get-ADGroupMember -$Group -recursive | Select-Object Name

Irgendwelche Ideen, wie man das richtig strukturiert, wäre dankbar!

Vielen Dank,

Chris

6
Chris

Wenn es Ihnen egal ist, in welchen Gruppen sich die Benutzer befanden, und Sie möchten nur eine große Liste von Benutzern - dies erledigt die Aufgabe:

$Groups = Get-ADGroup -Filter {Name -like "AB*"}

$rtn = @(); ForEach ($Group in $Groups) {
    $rtn += (Get-ADGroupMember -Identity "$($Group.Name)" -Recursive)
}

Dann die Ergebnisse: 

$rtn | ft -autosize
2
AndyMeFul

Dies ist sauberer und wird in eine csv eingefügt.

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
8
Joseph Alves
Get-ADGroupMember "Group1" -recursive | Select-Object Name | Export-Csv c:\path\Groups.csv

Ich bekam das für mich zu arbeiten ... Ich würde davon ausgehen, dass Sie "Gruppe1, Gruppe2 usw." setzen könnten. oder versuchen Sie es mit einem Platzhalter ..__ Ich habe AD vor der Hand in PowerShell vorgeladen: 

Get-Module -ListAvailable | Import-Module
4
BMOREiTGUY

Dadurch erhalten Sie eine Liste einer einzelnen Gruppe und der Mitglieder jeder Gruppe. 

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"

Wenn Sie den Anzeigenamen oder andere Details wünschen, fügen Sie diese am Ende der Auswahlobjektabfrage hinzu.

3
Jean-Claude D.