Nutzer und Gruppen mit CSV-Datei anlegen

Nutzer und Gruppen mittels CSV Datei anlegen

Das Skript liest eine CSV mit Nutzerdaten ein und erstellt für jeden Nutzer einen Microsoft 365 Account und eine passende Gruppe.

Sollte die Gruppe schon vorhanden sein, wird der neue Account der vorhandenen Gruppe hinzugefügt.

Beispiel CSV-Datei

Das Skript benötigt das AzureAD Modul, welches vorher installiert werden muss:

Install-Module AzureAD

# Verbindung mit dem AzureAD Modul herstellen, wenn noch keine Verbindung besteht
try{
    Get-AzureADTenantDetail
}catch{
    Connect-AzureAD 
}

# CSV Datei wird eingelesen
$users = Import-Csv -Delimiter "," -Path "C:\Users\r.scheglmann\Desktop\accounts.csv" -Encoding UTF8

foreach($user in $users){
    $groupName = $user.GroupName
    $groupExists = Get-AzureADGroup -Filter "DisplayName eq '$groupName'"

    # Existiert die Gruppe noch nicht, wird diese neu erstellt
    if($groupExists -eq $NULL){
       New-AzureADGroup -DisplayName $groupName -MailEnabled $false -SecurityEnabled $true -MailNickName "NotSet"
       $groupExists = Get-AzureADGroup -Filter "DisplayName eq '$groupName'"
    }

    $userPrincipalName = $user.UserPrincipalName
    $userExists = Get-AzureADUser -Filter "UserPrincipalName eq '$userPrincipalName'"

    # Existiert der Nutzer noch nicht, wird dieser neu erstellt und der entsprechenden Gruppe zugewiesen
    if($userExists -eq $NULL){
        $PasswordProfile=New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
        $PasswordProfile.Password="Schueler2000"
        
        # erstellt einen neuen Nutzer
        $newUser = New-AzureADUser -DisplayName $user.DisplayName -GivenName $user.FirstName -SurName $user.LastName -UserPrincipalName $user.UserPrincipalName -MailNickName "" -PasswordProfile $PasswordProfile -AccountEnabled $true
    
        # fügt den neuen Nutzer der Gruppe hinzu
        Add-AzureADGroupMember -ObjectId $GroupExists.ObjectId -RefObjectId $newUser.ObjectId
    }
}

Nutzer aus ASV exportieren und mit Passwort anlegen

Mit Hilfe dieses Exportformats können Daten in folgendem Muster aus ASV exportiert werden. Man muss nur noch die Domäne anpassen:

# Verbindung mit dem AzureAD Modul herstellen, wenn noch keine Verbindung besteht
try{
    Get-AzureADTenantDetail
}catch{
    Connect-AzureAD 
}

# CSV Datei wird eingelesen
$users = Import-Csv -Delimiter "," -Path "C:\Users\r.scheglmann\Desktop\accounts.csv" -Encoding UTF8

foreach($user in $users){
    
    $userPrincipalName = $user.UserPrincipalName
    $userExists = Get-AzureADUser -Filter "UserPrincipalName eq '$userPrincipalName'"

    # Existiert der Nutzer noch nicht, wird dieser neu erstellt und der entsprechenden Gruppe zugewiesen
    if($userExists -eq $NULL){
        $PasswordProfile=New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
        $PasswordProfile.Password=$user.Password
        
        # erstellt einen neuen Nutzer
        $newUser = New-AzureADUser -DisplayName $user.DisplayName -GivenName $user.FirstName -SurName $user.LastName -UserPrincipalName $user.UserPrincipalName -MailNickName $user.FirstName -PasswordProfile $PasswordProfile -AccountEnabled $true
    }
}