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

Geschrieben (bearbeitet)

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
Geschrieben

Moin,

 

du musst deiner If-Bedingung sagen, dass sie in der Spalte "samaccountname" nachsehen soll. Dann klappt es.

 

Einzige Änderung also:

If ($Importfile.samaccountname -contains $username) {Write-Host "Username vergeben"}

Gruß, Nils

Geschrieben (bearbeitet)

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
Geschrieben

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

Geschrieben

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

Geschrieben

Es hat sich durchaus bewährt, als Username (=samAccountName) eindeutige Merkmale wie z.B. Personalnummern zu verwenden :)

 

Das die Verwendung von Personalnummern sinnvoll ist, ist natürich klar. Nur haben wir über 3000 User mit einem anderen SamAccount und die können wir nicht mal eben umstellen ;-)

Geschrieben

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

Geschrieben

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 :-)

Geschrieben

Moin,

 

die Lizenzkosten sind bei einer IDM-Lösung nicht der Punkt. MIM bekommt man in der Basisversion auch "umsonst" (als Teil der Serverlizenz). Die Kosten liegen in der Konzeption, Implementierung und Einführung.

 

Gruß, Nils

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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...