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
}