-
Notifications
You must be signed in to change notification settings - Fork 0
/
create_user.ps1
49 lines (46 loc) · 1.74 KB
/
create_user.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
param(
[string]$DateiPfad
)
# Module laden und zu Azure verbinden
Import-Module AzureAD
Connect-AzureAD
function EmailGenerieren {
param (
[string]$Vorname,
[string]$Nachname,
[int16]$Versuch
)
$Domain = "@avatexschool.onmicrosoft.com"
$Teil1 = $Vorname.ToLower().Replace('ä','ae').Replace('ö','oe').Replace('ü','ue').Substring(0, 1)
$Teil2 = $Nachname.ToLower().Replace('ä','ae').Replace('ö','oe').Replace('ü','ue')
$StartIndex = 0 + $Versuch
$Teil2 = $Teil2.Substring($StartIndex, 1)
return $Teil1 + $Teil2 + $Domain
}
# Daten aus einer CSV-Datei importieren und jeden Datensatz verarbeiten
Import-Csv -Path $DateiPfad -Delimiter ";" | ForEach-Object {
$Vorname = $_.Vorname
$Nachname = $_.Nachname
$Passwort = $_.Passwort
$BenutzerErstellt = $false
$Versuch = 0
while ($BenutzerErstellt -eq $false) {
$Fehler = $false
$Email = EmailGenerieren -Vorname $Vorname -Nachname $Nachname -Versuch $Versuch
$PasswortProfil = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PasswortProfil.Password = $Passwort
$VollerName = $Vorname + " " + $Nachname
try {
New-AzureADUser -DisplayName $VollerName -GivenName $Vorname -SurName $Nachname -UserPrincipalName $Email -UsageLocation "CH" -MailNickName $Vorname -PasswordProfile $PasswortProfil -AccountEnabled $true | out-null
}
catch {
Write-Output "Benutzer $VollerName mit Email $Email konnte nicht erstellt werden."
$Versuch += 1
$Fehler = $true
}
if(!$Fehler){
$BenutzerErstellt = $true
Write-Output "Benutzer $VollerName mit Email $Email wurde erstellt."
}
}
}