39 lines
1.4 KiB
PowerShell
39 lines
1.4 KiB
PowerShell
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
|
|
} |