Veröffentlicht 10. März 20223 j Hallo zusammen, ich bin gerade dabei ein total vermülltes AD auszumisteten in dem wohl noch nie etwas gelöscht wurde, und brauch mal wieder Hilfe bei einem Script. Was ich möchte: Auslesen aller deaktivierter Userkonten im AD Vor-/Nachname (wenn gesetzt), die SID des Objektes und die letzte Anmeldung die Gruppenmitgliedschaften der besagten Konten Was ich habe: Get-ADUser -filter {(Enabled -eq $false)} -properties GivenName,Surname,objectSid,lastLogonTimestamp -SearchBase "DC=contoso,DC=local" -SearchScope Subtree | ForEach { „“ ; $_.SamAccountName ; „—“ ; Get-ADPrincipalGroupMembership $_ | Select-Object SamAccountName } > C:\Gruppen.txt Was fehlt: Aktuell bekomme ich es nur hin, dass er mir eine einzelne Datei mit allen Infos ablegt. Ich hätte aber gerne eine Datei pro User, mit dem SamAccountName als Dateiname. Da klemmt es aber irgendwie, das bekomme ich nicht hin.
10. März 20223 j Wäre es eine Option, die Dateierstellung in die for each zu packen und den Dateinamen dann entsprechend: C:\Gruppen_$SamAccountName.txt
11. März 20223 j Get-ADUser -filter {(Enabled -eq $false)} -properties GivenName,Surname,objectSid,lastLogonTimestamp -SearchBase "DC=contoso,DC=local" -SearchScope Subtree | ForEach { „“ ; $_.SamAccountName ; „—“ ; Get-ADPrincipalGroupMembership $_ | Select-Object SamAccountName | out-file "C:\Temp\gruppen_$($_.SamAccountName).txt"} Ich hab das mal getestet. Dir wird dann eine Textdatei mit dem Namen "Gruppen_SamAccountName" erzeugt und dort stehen die Berechtigungen drin. Ich bin auch direkt so frei und nutze das auch bei uns
11. März 20223 j Autor Get-ADUser -filter {(Enabled -eq $false)} -SearchBase "DC=contoso,DC=local" -SearchScope Subtree | ForEach { „“ ; $_.SamAccountName ; „—“ ; Get-ADPrincipalGroupMembership $_ | Select-Object SamAccountName | out-file "C:\Temp\gruppen\_$($_.SamAccountName).txt"} So, mal angepasst und jetzt schriebt er auch kein "Gruppen_" mehr davor, sondern in den Ordner Gruppen Allerdings will ich die Attribute "GivenName", "Surname", "objectSid" und "lastLogonTimestamp" auch in der Datei haben...
14. März 20223 j Habe da jetzt über eine Stunde dran gesessen und nichts wirklich produktives bei geschafft....
14. April 20223 j Servus, Wenn es noch relevant ist... geht sicherlich auch kürzer aber das ist mein Way2Go xD $UserObject = [ordered] @{ "GivenName" = "" "Surname" = "" "objectSid" = "" "lastLogonTimestamp" = "" } $UserTable = @() $users = Get-ADUser -Properties * -ldapFilter "(useraccountcontrol=514)" -SearchBase "OU=Users,DC=login,DC=contoso,DC=com" | select GivenName,Surname,objectSid,lastLogonTimestamp,SamAccountName foreach ($user in $users) { $path = "C:\Temp\export\" + $user.SamAccountName + ".csv" $UserObject."GivenName" = $user.GivenName $UserObject."Surname" = $user.Surname $UserObject."objectSid" = $user.ObjectSid $UserObject."lastLogonTimestamp" = $user.lastLogonTimestamp $UserRecord = New-Object PSObject -Property $UserObject $UserTable = $UserRecord $UserTable | Export-Csv -Path $path -NoTypeInformation }
14. April 20223 j Ahhh Sorry, Ich hab das mit den Gruppen übersehen. Das macht die Sache bisschen schwieriger. Aber nun hier bitte: $UserObject = [ordered] @{ "GivenName" = "" "Surname" = "" "objectSid" = "" "lastLogonTimestamp" = "" "memberOf" = "" } $UserTable = @() $users = Get-ADUser -Properties * -ldapFilter "(useraccountcontrol=514)" -SearchBase "OU=user,DC=login,DC=cortoso,DC=de" foreach ($user in $users) { $UserObject.Clear() $path = "C:\Temp\export\" + $user.SamAccountName + ".csv" $UserObject."GivenName" = $user.GivenName $UserObject."Surname" = $user.Surname $UserObject."objectSid" = $user.ObjectSid $UserObject."lastLogonTimestamp" = $user.lastLogonTimestamp Get-ADPrincipalGroupMembership $user.SamAccountName | select name | % {$UserObject."memberOf" += $_.Name + ", "} $UserRecord = New-Object PSObject -Property $UserObject $UserTable = $UserRecord $UserTable | Export-Csv -Path $path -NoTypeInformation } Kann jemand den Beitrag oben löschen? Ich war da nicht angemeldet 😕
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.