Passwörter ändern 888

Bei der Vergabe von Passwörtern müssen die von Microsoft genutzten Passwortrichtlinien beachtet werden:

  • mindestens 8 Zeichen Länge
  • Drei von folgenden Zeichen:
    • Großbuchstaben
    • Kleinbuchstaben
    • Zahlen
    • Sonderzeichen

Passwörter anhand des UserPrincipalName ändern

Anhand einer CSV Datei mit den UserPrincipalName und einer Password Spalte werden die Passwörter bereits angelegter Nutzer angepasst.

# 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){
    
    $userUPN= $user.UserPrincipalName
    $newPassword= $user.Password
    $secPassword = ConvertTo-SecureString $newPassword -AsPlainText -Force
    Set-AzureADUserPassword -ObjectId  $userUPN -Password $secPassword

}

Passwörter für Accounts setzen und Daten als CSV Datei exportieren

Hier werden mit Hilfe des Skripts Passwörter für z.B.: alle Schüler gesetzt und im Anschluss die Daten der Schüler in einer CSV Datei exportiert. Diese kann man dann in Excel importieren, nach Klassen sortieren und den Schülern ausgeben.

Die Ausgabe ist im Benutzerordner des ausführenden Benutzers zu finden.

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 
}

# Listet alle Lizenzen auf
Get-AzureAdSubscribedSku | Select-Object -Property SkuPartNumber,SkuId

# Sucht Nutzer nach der Lizenz, diese muss hier angegeben werden
$userList = Get-AzureADUser -All $true | Where-Object {($_.assignedLicenses).SkuId -contains "314c4481-f395-4525-be8b-2ec4bb1e9d91"}

$UserResults=@()

foreach($user in $userList){
    # erstellt ein Passwort mit der Aufforderung, nach dem ersten Login ein neues anzulegen
    $password = ConvertTo-SecureString -String "Schule123!" -Force –AsPlainText
    $objectID = $user.ObjectId
    Set-AzureADUserPassword -ObjectId $objectID -Password $password -ForceChangePasswordNextLogin $true

    # Eigenschaften die mit ausgegeben werden
    $UserProperties = @{
        Benutzername=$user.userPrincipalName
        Vorname=$user.givenName
        Nachname=$user.surname
        Abteilung=$user.Department
        Passwort= "Schule123!"
    }

    $UserResults += New-Object psobject -Property $UserProperties
}

# Speichert die Ergebnisse in eine csv Datei in das Benutzerverzeichnis
$UserResults | Export-Csv -Encoding UTF8 -NoTypeInformation -Path 'Office_Accounts.csv'