Zum Inhalt wechseln


Foto

Liste mit Usern in der AD vergleichen und nicht Vorhandene User ausgeben

Active Directory Windows 7

  • Bitte melde dich an um zu Antworten
2 Antworten in diesem Thema

#1 Hainoon

Hainoon

    Newbie

  • 1 Beiträge

 

Geschrieben 07. April 2017 - 11:49

Hallo Zusammen, Ich habe mir ein Script zusammen gebastelt das Eine CSV ausliest die Usernamen mit der AD Vergleicht und nicht existierende User in der AD wieder aus geben soll - Im Moment sieht es so aus:

Import-Module ActiveDirectory

$users = Get-ADUser -filter *

$userCSV = "U:\export3.csv"
Import-Csv $userCSV -delimiter ';' | Foreach-Object{
        $csvuser= $_
        if($users | Where-Object {$_.SamAccountName -eq $csvuser.SAMAccountName}) {
            New-Object psobject -Property @{
                SamAccountName = $csvuser.SAMAccountName
                Status = 'im AD vorhanden' 
            }|export-csv U:\export_final.csv -NoType -Delimiter ';' -Encoding UTF8
        } 
        else {
            New-Object psobject -Property @{
                Name = $csvuser.SAMAccountName
                Status = 'nichtmehr im AD, nur in der Liste' 
                
            }|export-csv U:\export_final.csv -NoType -Delimiter ';' -Encoding UTF8
           
        } 
}

Leider Bekomme ich es nicht hin das ich das Wirklich in einer Liste bekomme sondern das die User immer wieder in der Liste überschrieben wird.

 

Könnt ihr mir da weiterhelfen ich bin Azubi und sollte das Heute beendet haben komme nicht auf die Lösung korregiert vielleicht am besten den Code durch..

 

Sonst verzweifle ich hier noch


Bearbeitet von Hainoon, 07. April 2017 - 11:51.


#2 NilsK

NilsK

    Expert Member

  • 12.474 Beiträge

 

Geschrieben 07. April 2017 - 15:15

Moin,

 

denkbarer Ansatz:

  • Ausgabe der AD-User in demselben Format, das auch die vorhandene CSV-Liste aufweist
  • Vergleich der beiden Listen mit Compare-Object

Gruß, Nils


Nils Kaczenski

MVP Cloud and Datacenter Management
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!


#3 MurdocX

MurdocX

    Board Veteran

  • 585 Beiträge

 

Geschrieben 10. April 2017 - 11:45

Des Weiteren könntest du "Export-CSV" z.B. durch "Add-Content" ersetzen, damit du nicht immer alles überschreibst  ;)

 

EDIT:

Nutze lieber "ForEach ( $Benutzer in $BenutzerListe )", anstatt "Foreach-Object$csvuser = $_". Damit hast du erstens mehr Übersicht und du sparst dir noch im zweiten Schritt die Zuweisung. Letztlich wird sogar das Object mit seinem ObjectTyp sauber im $Benutzer enthalten sein.


Bearbeitet von MurdocX, 10. April 2017 - 11:48.

Mit freundlicher Unterstützung
Jan