Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

 

 

 

Wäre es eine Option, die Dateierstellung in die for each zu packen und den Dateinamen dann entsprechend:

 

C:\Gruppen_$SamAccountName.txt

 

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 :D

  • 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...

  • 1 Monat später...

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
}

 

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.