2016-09-19 2 views
0

ich ein Skript zu erstellen Ich versuche, die die oben tun,anzeigen Alle Behinderten ADUsers und ihre ADGROUP Mitgliedschaft

Ich habe so etwas wie das:

Search-ADAccount -AccountDisabled | Export-Csv -Path C:\csv\DisabledUsers.csv -NoTypeInformation 
$csv = Import-Csv -Path c:\csv\DisabledUsers.csv 
foreach ($SamAccountName in $csv) 
{ 
    Get-ADPrincipalGroupMembership | format table | Export-Csv -Path C:\csv\DisabledUsersGroupM.csv -NoTypeInformation 
} 

Es ist gut funktionieren, bis der foreach Teil. Scheint so, als würden keine Werte aus der CSV importiert.

ich dieses:

cmdlet Get-ADPrincipalGroupMembership at command pipeline position 
Supply values for the following parameters: 
(Type !? for Help.) 
Identity:

Was mache ich falsch?

Antwort

1

Sie rufen Get-ADPrincipalGroupMembership ohne einen erforderlichen Parameter (die Identität des Objekts, dessen Gruppenzugehörigkeit Sie erhalten möchten).

ändern

Get-ADPrincipalGroupMembership 

zu

Get-ADPrincipalGroupMembership $SamAccountName 

Auch die Export-Csv innerhalb der Schleife würde die Ausgabedatei mit jeder Iteration überschreiben, so dass Sie nur mit den Gruppen des letzten Benutzers würden am Ende . Fügen Sie den Parameter -Append hinzu, um dies zu vermeiden.

das gesagt ist, ein viel einfacherer Ansatz wahrscheinlich eine Pipeline so sein würde:

Search-ADAccount -AccountDisabled | 
    Select-Object SamAccountName, @{n='Groups';e={(Get-ADPrincipalGroupMembership $_.SamAccountName | Select-Object -Expand Name) -join ';'}} | 
    Export-Csv 'C:\csv\DisabledUsers.csv' -NoType 
Verwandte Themen