Powershell Funktion - Passwort abfragen
Hallo zusammen
Ich bin gerade dabei, eine Funktion die ich gefunden habe auf mein Skript umzuschreiben umd damit zu testen, ob das Passwort den Kennwortrichtlinien entspricht. Nur habe ich das Problem, dass egal wieviele Zeichen ich eingebe, immer die Meldung kommt, dass das Passwort zu kurz sei.
Hier ist die Funktion
Die minpwdlength zu definieren habe ich schon versucht, leider hat das nicht geklappt.
Wisst ihr vielleicht eine Lösung?
Gruss
gabeBU
Ich bin gerade dabei, eine Funktion die ich gefunden habe auf mein Skript umzuschreiben umd damit zu testen, ob das Passwort den Kennwortrichtlinien entspricht. Nur habe ich das Problem, dass egal wieviele Zeichen ich eingebe, immer die Meldung kommt, dass das Passwort zu kurz sei.
Hier ist die Funktion
#Funktion: Passwort übeprüfen
function PasswordCheck ($passwordnew) {
$adsi = [adsi]''
$Global:pwdPropertiesCheck = 0
$Global:i = 0
$minPwdLength = $($adsi.minPwdLength)
$pwdProperties = $($adsi.pwdProperties)
switch -regex ($pass)
{
"[A-Z]" { $Global:pwdPropertiesCheck += 1}
"[a-z]" { $Global:pwdPropertiesCheck += 1}
"[0-9]" { $Global:pwdPropertiesCheck += 1}
"\W" { $Global:pwdPropertiesCheck += 1}
}
If ($minPwdLength -gt $pass.length){
$prompt = "Das Passwort muss mindestens $minPwdLength Zeichen lang sein. Bitte versuchen sie es erneut "
$title = "Fehleingabe!"
Add-Type -AssemblyName microsoft.visualbasic
$Response = [Microsoft.VisualBasic.interaction]::MsgBox($prompt,'Critical', $title)}
ElseIf ($Global:pwdPropertiesCheck -lt 3){
$prompt = "Das Passwort ist nicht komplex genug.Bitte versuchen sie es erneut"
$title = "Fehleingabe!"
Add-Type -AssemblyName microsoft.visualbasic
$Response = [Microsoft.VisualBasic.interaction]::MsgBox($prompt,'Critical', $title)}
Else{
$prompt = "Passwort wird verwendet..."
$title = "Passwort"
Add-Type -AssemblyName microsoft.visualbasic
$Response = [Microsoft.VisualBasic.interaction]::MsgBox($prompt,'OKOnly, Information', $title)
$Global:i++
}
If($Global:i -ne 1){
$prompt = "Bitte geben sie ein Passwort ein :"
$title = "Passowrt eingeben"
Add-Type -AssemblyName microsoft.visualbasic
$Global:password = [Microsoft.VisualBasic.interaction]::inputbox($prompt,$title)
if ($Global:Password -eq $Null){exit}
}
}
Die minpwdlength zu definieren habe ich schon versucht, leider hat das nicht geklappt.
Wisst ihr vielleicht eine Lösung?
Gruss
gabeBU
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 195162
Url: https://administrator.de/forum/powershell-funktion-passwort-abfragen-195162.html
Ausgedruckt am: 11.04.2025 um 14:04 Uhr
1 Kommentar
Hallo,
Dann würde ich vermuten (da bin ich mir aber nicht sicher), dass das Passwort "Ab1xxxxxxx" akzeptiert wird, "1bAxxxxxx" aber nicht, weil der switch nur einmal durchlaufen wird.
Und zu guter Letzt: wenn man Skripte irgendwo her kopiert ist es guter Stil, dass man dazu schreibt von wem und von wo sie stammen.
Gruß
Filipp
Nur habe ich das Problem, dass egal wieviele Zeichen ich eingebe, immer die Meldung kommt, dass das Passwort zu kurz sei.
Da würde ich jetzt mal vermuten, dass die Prüfung "If ($minPwdLength -gt $pass.length){ " immer true ergibt. Da kann es natürlich hilfreich sein, die beiden Variablen einfach mal ausgeben zu lassen, um zu sehen, was da drinnsteht. Schaue ich mir dein Quelltext näher an, so stellt sich mir die Frage: Wo weißt du denn $pass überhaupt einen Wert zu?Dann würde ich vermuten (da bin ich mir aber nicht sicher), dass das Passwort "Ab1xxxxxxx" akzeptiert wird, "1bAxxxxxx" aber nicht, weil der switch nur einmal durchlaufen wird.
Und zu guter Letzt: wenn man Skripte irgendwo her kopiert ist es guter Stil, dass man dazu schreibt von wem und von wo sie stammen.
Gruß
Filipp