function creatpw { param( [string]$Vorname, [string]$Nachname, [string]$user, [bool]$ChangePasswordAtLogon ) # Umlaute ersetzen $Vorname = $Vorname.Replace('ö','oe').Replace('ä','ae').Replace('ü','ue').Replace('ß','ss').Replace('Ö','Oe').Replace('Ü','Ue').Replace('Ä','Ae') $Nachname = $Nachname.Replace('ö','oe').Replace('ä','ae').Replace('ü','ue').Replace('ß','ss').Replace('Ö','Oe').Replace('Ü','Ue').Replace('Ä','Ae') # Groß-/Kleinschreibung $Vorname = $Vorname.ToUpper() $Nachname = $Nachname.ToUpper() $VornameK = $Vorname.ToLower() $NachnameK = $Nachname.ToLower() # Code-Zeichen $CodeVorname = $Vorname[0] + $VornameK[-1] $CodeNachname = $Nachname[0] + $NachnameK[-1] # Länge begrenzen $Vornameanzahl = $Vorname.Length $Nachnameanzahl = $Nachname.Length if ($Vornameanzahl -ge 9) { $Vornameanzahl = 9 } if ($Nachnameanzahl -ge 9) { $Nachnameanzahl = 9 } # Passwort zusammenstellen $Codename = "##*" + $CodeVorname + $CodeNachname + $Vornameanzahl + $Nachnameanzahl + "*##" # Passwort setzen und Account aktivieren Set-ADAccountPassword -Identity $user -NewPassword (ConvertTo-SecureString -AsPlainText $Codename -Force) -Reset Enable-ADAccount -Identity $user Set-ADUser -Identity $user -ChangePasswordAtLogon:$ChangePasswordAtLogon Write-Host "$user - $Vorname - $Nachname : $Codename ( Kennwort ist im Zwischenspeicher. )" Set-Clipboard $Codename }