Auslesen und Vergleichen Zweiter CSV Dateien Powershell
Hallo zusammen,
ich arbeite im Moment an einem Script zum auslesen und vergleichen von Usern in der AD.
Das ganze habe ich so gebastelt das mir 2 CSV Dateien erstellt werden, jedoch ist mein Problem das ich beim Vergleichen nicht weiterkomme.
Die Dateien haben beide jeweils nur 1 Spalte.
Die Datei 1 heißt: export2.csv (1 Zeile; Spalte: Name)
Die Datei 2 heißt: export.csv (1 Zeile; Spalte: sAMAccountName)
hier möchte ich einzig und allein das mir ausgegeben wird welcher Eintrag in beiden Dateien vorhanden ist.
Könnt ihr mir helfen ?
Ich habe schon viel ausprobiert aber bekomme immer noch eine leere Datei raus.
Hier mein Code( ich weiß das hier noch einiges überflüssig ist aber ich bin noch ganz neu :D
ich arbeite im Moment an einem Script zum auslesen und vergleichen von Usern in der AD.
Das ganze habe ich so gebastelt das mir 2 CSV Dateien erstellt werden, jedoch ist mein Problem das ich beim Vergleichen nicht weiterkomme.
Die Dateien haben beide jeweils nur 1 Spalte.
Die Datei 1 heißt: export2.csv (1 Zeile; Spalte: Name)
Die Datei 2 heißt: export.csv (1 Zeile; Spalte: sAMAccountName)
hier möchte ich einzig und allein das mir ausgegeben wird welcher Eintrag in beiden Dateien vorhanden ist.
Könnt ihr mir helfen ?
Ich habe schon viel ausprobiert aber bekomme immer noch eine leere Datei raus.
Hier mein Code( ich weiß das hier noch einiges überflüssig ist aber ich bin noch ganz neu :D
import-module activedirectory
[String] $folder
Get-ChildItem -Path $folder -recurse | select Name| Select-Object Name | Export-csv U:\export2.csv -Encoding "unicode" -NoTypeInformation -Delimiter ";" #Verzeichnisse auslesen
#CSV Liste namen der AD
$liste = Get-ADUser -filter * -properties sAMAccountName | select sAMAccountName, @{Name="Manager";Expression={(get-aduser -id .Manager -prop sAMAccountName).Displayname}}
$liste | Select-Object sAMAccountName | Export-csv U:\export.csv -encoding "unicode" -NoTypeInformation -Delimiter ";"
#Liste wird auf U: abgelegt
$export2_csv = Import-CSV 'U:\export2.csv' -delimiter ";"
$export_csv = Import-CSV 'U:\export.csv' -delimiter ";"
$csv_out = 'U:\out.csv'
$host_csv | ?{($ipm_csv | select -Expand sAMAccountName ) -notcontains $_.'sAMAccountName'} | export-csv $csv_out -Delimiter ";" -NoTypeInformation -Encoding Default
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 332737
Url: https://administrator.de/contentid/332737
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
7 Kommentare
Neuester Kommentar
Kein Wunder, man sollte erst mal die Doku lesen bevor man so einen Schwachfug probiert
# CSV Datei mit "Name" als Spalte
$csv1 = Import-CSV 'C:\export1.csv' | select @{n="SamAccountName";e={$_.Name}}
# CSV Datei mit "SamAccountName" als Spalte
$csv2 = Import-CSV 'C:\export2.csv' | select SamAccountName
compare $csv1 $csv2 -Property SamAccountName -IncludeEqual -ExcludeDifferent -passthru | export-csv 'C:\export_final.csv' -NoType -Delimiter ';' -Encoding UTF8
Zitat von @Hainoon:
Aber gibt es auch eine Möglichkeit das ich nur die Einträge bekomme die Drin sind ?
?? Wie was drin sind???Aber gibt es auch eine Möglichkeit das ich nur die Einträge bekomme die Drin sind ?
Obiges gibt nur die User aus die in beiden Dateien vorhanden sind sagt ja schon der Parameter -IncludeEqual und -ExcludeDifferent.
Hier siehst du es an einem Beispiel(mit Beispieldaten) das es problemlos funktioniert!
$csv1 = @"
Name
Max Muster
Hans Fröhlich
Elke Musterfrau
"@ | ConvertFrom-CSV | select @{n='SamAccountName';e={$_.Name}}
$csv2 = @"
SamAccountName
Hans Fröhlich
Elke Musterfrau
"@ | ConvertFrom-CSV
compare $csv1 $csv2 -Property SamAccountName -IncludeEqual -ExcludeDifferent -PassThru | select SamAccountName
Ergebnis wie erwartet:
SamAccountName
--------------
Hans Fröhlich
Elke Musterfrau
Na dann mach einfach eine Schleife über die User und prüfe mit Get-ADUser ob sie im AD vorhanden sind, fertig:
AD User pflegen anhand einer CSV
Wenns das dann war, bitte noch einen Haken dran.
AD User pflegen anhand einer CSV
irgendwie habe ich eine denkblockade
Sieht definitiv so aus.Wenns das dann war, bitte noch einen Haken dran.