PowerShell-Inputs aus CSV-Datei einlesen
Hallo,
wir haben einen PowerShell-Script, mit dem wir neuen externen User anlegen.
Das Script stellt Fragen, die dann manuell beantwortet werden.
Manchmal müssen wir aber 10-20 User anlegen, wo es dann sinnvoll wäre, wenn die Inputs über CSV-Datei geliefert werden könnten.
Wie setze ich so etwas am einfachsten um?
hier ist die Stelle ich Code, wo die Inputs eingegeben werden:
.
.
.
.
Vielen Dank für eure Meinungen.
LG
JoFla
wir haben einen PowerShell-Script, mit dem wir neuen externen User anlegen.
Das Script stellt Fragen, die dann manuell beantwortet werden.
Manchmal müssen wir aber 10-20 User anlegen, wo es dann sinnvoll wäre, wenn die Inputs über CSV-Datei geliefert werden könnten.
Wie setze ich so etwas am einfachsten um?
hier ist die Stelle ich Code, wo die Inputs eingegeben werden:
.
.
## Einlesen der notwendigen Informationen aus der Eingabe
$Emailadress = Read-Host "Emailadresse des neuen Users"
$testuser = Get-ADUser -Filter * -Properties mail | Where-Object{$_.mail -like "$Emailadress"} | Format-Table
if ($Null -ne $testuser){
Write-Host -ForegroundColor "red" "Ein Benuter hat die gleiche Emailadresse wie ein bereits vorhandener Benutzer"
break
}
else
{Write-Host "Das Skript wird fortgesetzt"}
$GivenName = Read-Host "Vorname des Benutzers"
$SurName = Read-Host "Nachname des Benutzer"
$Ticketnummer = Read-Host "Ticketnummer wegen dem der Benutzer angelegt wird"
$Organisation = Read-Host "Organisation/Arbeitgeber des Benutzers?"
Write-Host "Es wird geprueft ob ein Benutzer mit dieser Mailadresse im Ad bereits vorhanden ist"
.
Vielen Dank für eure Meinungen.
LG
JoFla
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4187217336
Url: https://administrator.de/contentid/4187217336
Ausgedruckt am: 24.11.2024 um 10:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo, naja falsche Stelle die du geposted hast. Wenn es schon so läuft, fehlt dir doch nur ein CSV Import. Oder?
Die CSV wird satzweise eingelesen und jedes getrennte Element kannst du dann einfach zuweisen.
https://support.staffbase.com/hc/en-us/articles/360007108391-CSV-File-Ex ...:
https://support.staffbase.com/hc/en-us/article_attachments/360009197051/ ...
Ergebnis:
Du kommst auch einfach an Spalten mit Leerzeichen ran. Beim Druchlaufen der Sätze muss dann dein Code für das Anlegen rein. Oder fehlt der auch noch?
In dem Fall wäre es einfach nur $user.'Login email', was du zum Vergleich ob schon vorhanden heranziehen kannst.
Das CSV Beispiel ist gar nicht verkehrt. Du siehst, es gibt hier auch welche wo E-Mail Adresse leer ist. Das kann man natürlich entsprechend noch abfangen. Gerade wenn es ein halb automatischer Prozess ist. Manche denken vlt.: Boah, schwer. Trag ich später nach. Und Rumms - schon hast du den Salat.
mfg Crusher
Die CSV wird satzweise eingelesen und jedes getrennte Element kannst du dann einfach zuweisen.
https://support.staffbase.com/hc/en-us/articles/360007108391-CSV-File-Ex ...:
https://support.staffbase.com/hc/en-us/article_attachments/360009197051/ ...
$FUserCSV = "C:\temp\username-or-email.csv"
$delimiter = ";"
$satz=Import-CSV -Path $FUserCSV -Delimiter $delimiter
ForEach ($user in $satz) {
$user.Identifier
$user.'Last Name'
}
Ergebnis:
9012
Booker
2070
Grey
...
Du kommst auch einfach an Spalten mit Leerzeichen ran. Beim Druchlaufen der Sätze muss dann dein Code für das Anlegen rein. Oder fehlt der auch noch?
In dem Fall wäre es einfach nur $user.'Login email', was du zum Vergleich ob schon vorhanden heranziehen kannst.
Das CSV Beispiel ist gar nicht verkehrt. Du siehst, es gibt hier auch welche wo E-Mail Adresse leer ist. Das kann man natürlich entsprechend noch abfangen. Gerade wenn es ein halb automatischer Prozess ist. Manche denken vlt.: Boah, schwer. Trag ich später nach. Und Rumms - schon hast du den Salat.
mfg Crusher
Moin,
Tipp:
Baue im PS-Script drei Funktionen:
Die erste bekommt die Daten (als Objekt) übergeben, verbindet sich gegen das AD und legt den/ die User an
Die zweite fragt die Daten ab, speichert sie in ein Objekt, ruft die erste auf und übergibt das Objekt.
Die dritte liest eine CSV aus, ruft die erste auf und übergibt das Objekt.
Sollen später Daten aus einem HR (webservice) abgerufen werden, macht das die vierte und übergibt alles an die erste…
So musst du nur ein ps1 pflegen, hast aber eine hohe Flexibilität
Gruß
em-pie
Tipp:
Baue im PS-Script drei Funktionen:
Die erste bekommt die Daten (als Objekt) übergeben, verbindet sich gegen das AD und legt den/ die User an
Die zweite fragt die Daten ab, speichert sie in ein Objekt, ruft die erste auf und übergibt das Objekt.
Die dritte liest eine CSV aus, ruft die erste auf und übergibt das Objekt.
Sollen später Daten aus einem HR (webservice) abgerufen werden, macht das die vierte und übergibt alles an die erste…
So musst du nur ein ps1 pflegen, hast aber eine hohe Flexibilität
Gruß
em-pie