Nutzer und Gruppen mit CSV-Datei anlegen Nutzer und Gruppen mittels CSV Datei anlegenNutzer aus ASV exportieren und mit Passwort anlegenAngelegten Nutzern Lizenzen zuweisenAngelegten Nutzern Gruppen zuweisen 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 Hier wird erklärt wie man Nutzer aus ASV exportiert. Nach dem Export kann man die .CSV Datei auf den Desktop ablegen und folgendes Powershell Skript ausführen: 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.ForceChangePasswordNextLogin = $True $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 Hier wird erklärt wie man Nutzer aus ASV exportiert. Nach dem Export kann man die .CSV Datei auf den Desktop ablegen und folgendes Powershell Skript ausführen: # 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.ForceChangePasswordNextLogin = $True $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 } } Angelegten Nutzern Gruppen zuweisen Hier wird mit Hilfe einer .CSV Datei Nutzer in die Gruppe in der Spalte „GroupName“ hinzugefügt. # Verbindung mit dem AzureAD Modul herstellen, wenn noch keine Verbindung besteht try{ Get-AzureADTenantDetail }catch{ Connect-AzureAD } # Beispiel: hier werden alle Nutzer mit einem Merkmal in der E-Mailadresse gesucht # $users = Get-AzureADUser -All $true | Where-Object {$_.UserPrincipalName -Match "s.scheglmann" } # ODER: # CSV Datei wird eingelesen mit Spalte "GroupName" $users = Import-Csv -Delimiter "," -Path "C:\Users\r.scheglmann\Desktop\Office_Accounts.csv" -Encoding UTF8 foreach($user in $users){ $userPrincipalName = $user.UserPrincipalName $userExists = Get-AzureADUser -Filter "UserPrincipalName eq '$userPrincipalName'" # nur wenn der Nutzer gefunden wurde, wird versucht die Gruppe zuzuweisen if($userExists){ # speichert die ID vom Nutzer in einer Variablen $objectID = $userExists.ObjectId $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'" } # versucht den Nutzer der Gruppe hinzuzufügen try { Add-AzureADGroupMember -ObjectId $groupExists.ObjectId -RefObjectId $objectID Write-Host "Nutzer:" $userPrincipalName "wurde der Gruppe" $groupName "hinzugefügt." } catch { Write-Host "Nutzer:" $userPrincipalName "ist bereits in der Gruppe" $groupName } }else{ Write-Host "Nutzer:" $userPrincipalName "existiert nicht." } } Links ASV Export unsere-schule.org × Nutzer und Gruppen mit CSV-Datei anlegen Code: Infos: unsere-schule Codes