judgelg
Goto Top

Datensätze aus Excel mit Ordnerinhalt abgleichen und auflisten

Hallo,

ich habe eine Excelliste, wo ungefähr 300 E-Mailadressen drin stehen. Zu diesen E-Mailadressen hatte ich bisher immer die .pem certs aus einem Ordner von hand raus gesucht. Das ist natürlich sehr mühselig.
Gibt es eine Möglichkeit, das man den Ordnerinhalt automatisch durchsuchen kann und sich die Ergebnisse auflisten lassen kann.

Danke für eure Mithilfe.

Mfg

Content-ID: 671108

Url: https://administrator.de/forum/datensaetze-aus-excel-mit-ordnerinhalt-abgleichen-und-auflisten-671108.html

Printed on: February 9, 2025 at 08:02 o'clock

151434
151434 Feb 03, 2025 updated at 14:28:38 (UTC)
Goto Top
Beispiel

CSV (D:\mails.csv)
"E-Mail"  
"user1@domain1.de"  
"user2@domain1.de"  
"user3@domain1.de"  
Ordnerinhalt (D:\Certs)
D:\Certs\user1@domain1.de.pem
D:\Certs\user2@domain1.de.pem
D:\Certs\user3@domain1.de.pem
D:\Certs\user4@domain1.de.pem
D:\Certs\user5@domain1.de.pem

Powershell-Skript

# Ordner mit den Certs
$folder = 'D:\certs'  
# CSV mit Mails
$csv = 'D:\mails.csv'  
# Mails aus CSV holen
$mails = (Import-CSV $csv -Delimiter ";").'E-Mail'  
# nur certs holen die in der CSV stehen
$certfiles = Get-ChildItem -LiteralPath $folder -File -Filter *.pem | where-object {$_.Basename -in $mails}
# files ausgeben
$certfiles

Ergibt die Files

D:\Certs\user1@domain1.de.pem
D:\Certs\user2@domain1.de.pem
D:\Certs\user3@domain1.de.pem

Fertsch.

Gruß goldcap
Judgelg
Judgelg Feb 04, 2025 at 06:18:44 (UTC)
Goto Top
Alles klar, ich danke dir.
Werde das gleich mal testen.

Mfg
Judgelg
Judgelg Feb 04, 2025 at 06:45:20 (UTC)
Goto Top
Zitat von @151434:

Beispiel

CSV (D:\mails.csv)
"E-Mail"  
"user1@domain1.de"  
"user2@domain1.de"  
"user3@domain1.de"  
Ordnerinhalt (D:\Certs)
D:\Certs\user1@domain1.de.pem
D:\Certs\user2@domain1.de.pem
D:\Certs\user3@domain1.de.pem
D:\Certs\user4@domain1.de.pem
D:\Certs\user5@domain1.de.pem

Powershell-Skript

# Ordner mit den Certs
$folder = 'D:\certs'  
# CSV mit Mails
$csv = 'D:\mails.csv'  
# Mails aus CSV holen
$mails = (Import-CSV $csv -Delimiter ";").'E-Mail'  
# nur certs holen die in der CSV stehen
$certfiles = Get-ChildItem -LiteralPath $folder -File -Filter *.pem | where-object {$_.Basename -in $mails}
# files ausgeben
$certfiles

Ergibt die Files

D:\Certs\user1@domain1.de.pem
D:\Certs\user2@domain1.de.pem
D:\Certs\user3@domain1.de.pem

Fertsch.

Gruß goldcap

Hallo, bei mir wirft er leider nichts aus. Er durchläuft das Script, wirft am ende aber nicht aus.
151434
151434 Feb 04, 2025 updated at 06:53:06 (UTC)
Goto Top
Dann stimmt entweder deine CSV nicht mit der oben überein oder die Dateien sind anders benannt.
Bitte prüfen ob die Überschrift in der CSV auch vorhanden ist und ob der Delimiter das Semikolon ist ! Wenn nicht, ergänzen und bei Bedarf Delimiter anpassen und prüfen ob die Überschrift 'E-Mail' lautet , wenn sie anders heißt musst du das im Skript verständlicherweise auch anpassen.

Klappt hier einwandfrei, Fehler in der Anwendung liegt also bei dir.
Judgelg
Judgelg Feb 04, 2025 at 12:24:13 (UTC)
Goto Top
ok, ich prüfe.

Danke