none
Duplikate nach Einlesen von CSV und verarbeiten mit Foreach RRS feed

  • Frage

  • Hallo,

    ich habe immer wieder die Aufgabe "bulk Operations" im AD durchzuführen. Bisher klappte das auch alles wunderbar mit PS.

    Meine Scripte sind evtl nicht wirklich "optimiert", aber erfuellen Ihren zweck. 
    Nun muss ich eine Verschiedene ( einfache) operationen auf AD Gruppen durchführen.

    Dazu nutze PS Version 3.0 sowie die Quest AD tools ( get-qadgroup ) . Nun ist mit aufgefallen, das ich nach dem einlesen einer zuvor erstellten CSV, und verarbeiten meiner Abfrage, jedesmal eine Ausgabe erhalte, welche sehr viele Duplikate enthält ( die es aber im AD definitiv nicht gibt) . Kurz gesagt: Ich lese eine csv mit 1395 Eintraegen ein, mache z.b. ein einfaches

    get-qadgroup $groupname | select SamAccountName

    in einer Foreach-Object schleife und heraus kommt eine CSV Datei mit 1476 Gruppennamen. 
    Nun dachte ich mir, ich behelfe mir indem ich die Duplikate einfach herausfiltere mit

    import-csv "$filename" | sort SamAccountName -unique

    Danach habe ich allerdings in der liste nur noch 1356 Eintraege...

    Wie kann das sein ? Was läuft da falsch.
    Konkret sieht der Code wie folgt aus

    import-csv "pfad\zur\gruppen.csv" |
    ForEach {
    get-qadgroup $Name | select SamAccountName | epcsv -NoTypinformation "pfad\zur\samaccountnames.csv" 
    }
    
    
    Also eigentlich nichts komplexes, jedoch stimmt am ende die ANzahl der Ausgegebenen Namen nicht mit der Anzahl der eingelesenen überein. Es befinden sich unterschiedlich viele Duplikate in der Ausgabe.

    Wo läuft das ganze aus dem Ruder ?

    Vielen Dank im voraus
    Viele Grüße
    Uwe

    Donnerstag, 9. Juli 2015 12:11

Antworten

  • Hallo,

    irgenwie passt dein Code nicht zusammen, wo wird die Variable $Name befuelllt?. Die esrten paar Zeilen der CSV Datei waeren auch hilfreich.

    Hier ein Beipiel:
    CSV sieht so aus:

    IP, Name
    1.1.1.1, Switch 1
    2.2.2.2, Switch 2
    3.3.3.3, Switch 3

    Code
    foreach ($Switch in (Import-CSV .\zzz.csv)) {
    	$SwitchName = $Switch.Name
    	$SwitchIP = $Switch.IP
    	"Der Switch mit dem Namen '$SwitchName' hat folgende IP: $SwitchIP"
    }
    Das kann man auch noch zusammenfassen ...


    Beste Gruesse
    brima


    Freitag, 10. Juli 2015 07:02