Jump to content

NicR

Members
  • Gesamte Inhalte

    4
  • Registriert seit

  • Letzter Besuch

Beste Lösungen

  1. NicR's post in Multivalue aus AD, Proxyaddresses formatieren wurde als beste Lösung markiert.   
    Hallo
     
    Ich denke ich kann das nun als gelöst markieren.
    Folgenden Code habe ich (DANKE, PowerShellAdmin) benutzt:
    #Konsole bereinigen cls #Arraylist erzeugen $user_list=New-Object System.Collections.ArrayList $user_list_control=New-Object System.Collections.ArrayList #Abfrage Benutzer $users=Get-ADUser -LDAPFilter {(!useraccountcontrol:1.2.840.113556.1.4.803:=2)} -SearchBase "DC=XX,DC=XXX,DC=XXX" -Properties office,proxyaddresses, mail | where-object mail -ne $NULL #Schleife geht durch sämtliche Benutzer foreach($user in $users){ #Varibalen NULLEN $mail_prim_smtp=$NULL $mail_sek_smtp=$NULL $mail_sip=$NULL #Schleife arbeitet die Einträge im Attribut ab (innerhalb Benutzer) foreach($mail in $user.proxyaddresses){ #Eintrag enthält eine Adresse #$Mail #prüft ob eine 2 in einer emailadresse enthalten ist und initiert parameter zum eintrag in kontrollliste IF($mail -match "2"){ $control="1" } #prüft ob es NICHT die primäre Adresse ist IF($mail -notmatch $user.mail){ #prüft ob es eine SMTP Adresse ist IF($mail -match 'smtp:'){ $mail_sek_smtp+=$mail.Substring(5,($mail.Length-5))+'' } } } #Benutzerobjekt erzeugen $user_details = New-Object PSObject -Property @{ user_name=$user.Name #primäre email aus Benutzer ermittelt mail_prim_smtp=$user.mail mail_sek_smtp=$mail_sek_smtp office=$user.Office } #Nutzernamen Anteil vergleichbar machen durch kürzen der Domain $user_sek_email_name=$mail_sek_smtp.replace("@SEK_DOMAIN.com","") $user_prim_email_name=$user.mail.replace("@PRI_DOMAIN.com","") #Benutzerobjekt Arraylist hinzufügen, wenn prim und sek Adresse ungleich if( $user_sek_email_name -ne $user_prim_email_name) { $user_list+=$user_details } #Ausgabe wenn Kontrollparameter control =1 IF($control -eq "1"){ $user_list_control+=$user_details $control="0" } } #Ausgabe kontrolliste $user_list_control | Select-Object office, user_name, mail_prim_smtp, mail_sek_smtp | Sort-Object user_name | Export-Csv -Path c:\powershell\Mailaddress_to_check_control.txt -Append -NoTypeInformation #Ausgabe $user_list | Select-Object office, user_name, mail_prim_smtp, mail_sek_smtp | Sort-Object user_name | Export-Csv -Path c:\powershell\Mailaddress_to_check.txt -Append -NoTypeInformation Für mich habe ich den zusätzlichen Punkt "Wenn Mailadressen eine Ziffer enthält, erzeuge eine weitere Datei" Das heisst hier (bei uns) das ein Benutzer schon "doppelt" existiert.

    Ich habe mir noch zur Aufgabe gemacht, die "Sekundären Addresses" zu separieren, damit das irgendwie eleganter wird. Aktuell wird das im Output als eine lange Zeile dargestellt, jedoch möchte ich erstmal Feedback geben.
    Vielen Dank für die Hilfe, ich hoffe ich kann da anderweitig auch mal helfen!
×
×
  • Neu erstellen...