gabebu
Goto Top

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
#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

Content-Key: 195162

Url: https://administrator.de/contentid/195162

Printed on: April 19, 2024 at 16:04 o'clock

Member: filippg
filippg Nov 30, 2012 updated at 20:59:59 (UTC)
Goto Top
Hallo,

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