Jump to content

CSV mit Powershell durchsuchen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich möchte eine CSV Datei mit Usernamen per Powershell durchsuchen, ob der Username in der CSV schon vorhanden ist.

 

Leider habe ich keine Ahnung wie ich das anstelle.

 

Hat jemand einen Tip für mich.

 

Bis jetzt bin ich bis

cls
Write-Host "Username: " -NoNewline
$Username = Read-Host

$ImportFile = Import-csv "C:\test.csv"

IF($ImportFile -contains $username) {Write-Host "Username vergeben"}

else{
Write-Host "Username frei"
}

Die CSV sieht im Moemnt so aus:

samaccountname
meyer
mueller
schulz

Leider sagt er immer, dass der Username frei ist, obwohl er in der CSV ist.

 

 

Danke schoneinmal für die Hilfe

 

 

+++EDIT+++

 


Okay, -contains war falsch.

 

Mit -match funktioniert es ^^

bearbeitet von Kuddel071089
Link zu diesem Kommentar

Okay einen 1:1 Check habe ich jetzt. Für den Anfang nicht schlecht.

 

Kann ich die CSV auch durchsuchen um einen passenden Usernamen zu finden ?

 

Sprich: Suche nach Meyer*

 

Ergebnis:

Meyer

Meyer-B

Meyer-J

 

Somit weiß ich, dass ich zb Meyer-K anlegen kann.

 

Ich weiß nur leider nicht, wie ich die Suche anstoße

 

 

##### EDIT #####

 

Erster Versuch:

cls
$username = "Meyer"

IF(Select-String -Path C:\test.csv -Pattern "$username") {
Select-String -Path C:\test.csv -Pattern "$username"
}

Ergebnis:

 

C:\test.csv:2:meyer
C:\test.csv:5:meyer-j

 

Wenn man jetzt irgendwie den Pfad vor dem Namen entfernen könnte, wäre das schon die Lösung

bearbeitet von Kuddel071089
Link zu diesem Kommentar

Moin,

 

bevor wir uns jetzt von Punkt zu Punkt hangeln, ohne einen Überblick zu haben, wäre es fein, wenn du beschreibst, was denn eigentlich am Ende dein Ziel ist und was die Rahmenbedingungen sind.

 

Gruß, Nils

 

Hallo Nils,

 

ich bin dabei mein Skript zur Einrichtung eines neuen Users zu aktualisieren.

 

Vor der EInrichtung müssen wir immer manuell prüfen, ob der angedachte Username bereits in unserem E-Mail Archiv enthalten ist. Von diesem Archiv habe ich einen Export aller User und muss demetnsprechend prüfen, ob der Username noch nicht verwendet wurde.

Danach muss natürlich auch geprüft werden, ob der User evtl. schon im AD existiert, nur aber ohne Mail Adresse und daher nicht im Mail Archiv auftaucht.

 

Es wäre natürlich praktisch, wenn Username "Meyer" z.b. schon vergeben ist, automatisch ein "A" von seinem Vornamen "Andreas" an den Usernamen "Meyer-A" angefügt wird, sofern dieser noch frei ist.

 

Ich weiß nicht wie viel Aufwand das ganze macht. Primär sind für mich diese Schritt:

 

1. Eingabe angedachter Username

2. Check ob Username in CSV enthalten ist

3. Wenn User enthalten dann suche nach $username* in csv um die vergeben Usernamen anzuzeigen

4. Check ob Username im AD frei ist

5. Wenn nicht frei -> Get-ADUser -Filter {SamAccountName like "$username*"} | Select SamAccountName | FT -HideTableheader

 

Keine AHnung ob ich das ganze ein wenig umständlich machen. Praktisch wäre es aufjeden fall, wenn ich nur eine Liste bekomme, welche Usernamen schon in Verwendung sind.

 

 

Wenn es nicht ganz so kompliziert ist, soll der Username automatisch ausgewählt werden. Also Username= Nachname bzw. Nachname+BuchstabeVorname

Link zu diesem Kommentar

Moin,

 

wenn du den Namen gegen zwei Quellen prüfen musst, würde ich zu Beginn eine gemeinsame Liste aus beiden Quellen erzeugen. Dann musst du nur einmal vergleichen und kannst einfacher eine Routine bauen, die verfügbare Namen vorschlägt.

 

Ein Identity Management ist ja ebensowenig kurzfristig einzuführen wie eine Umstellung der Namenskonvention für Anmeldenamen. Daher ergibt der Ansatz schon Sinn. Ob er prozessual ausreichend eingebettet ist, müsst ihr natürlich selbst prüfen.

 

Gruß, Nils

Link zu diesem Kommentar

Moin,

 

wenn du den Namen gegen zwei Quellen prüfen musst, würde ich zu Beginn eine gemeinsame Liste aus beiden Quellen erzeugen. Dann musst du nur einmal vergleichen und kannst einfacher eine Routine bauen, die verfügbare Namen vorschlägt.

 

Ein Identity Management ist ja ebensowenig kurzfristig einzuführen wie eine Umstellung der Namenskonvention für Anmeldenamen. Daher ergibt der Ansatz schon Sinn. Ob er prozessual ausreichend eingebettet ist, müsst ihr natürlich selbst prüfen.

 

Gruß, Nils

 

Hallo Nils,

 

vielen Dank erst einmal für deine Antwort.

 

Gutes Stichwort IDM. Haben wir auch schon mehrfach vorgeschlagen, wurde aber aus kostengründen ablehnt.

 

Somit sind Admins jetzt selber am fummeln und am basteln.

 

Ich werde mich dann mal ans Werk machen :-)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...