> If anyone knows how to query a password against complexity requirements, > I'd like to know how.
When it comes to string validation the answer is almost always "Regular Expressions". The vbscript example below tests arbitrary string for compliance with "Password must meet security requirements" policy in Windows. (watch for line wraps) ==8<=============== Option Explicit Dim arrReq1(0),arrReq2(3),iReq,sErr,sArg,iNum,i 'Mandatory Requirement '===================== arrReq1(0) = ".{8,128}" ' length is 8 to 128 chars 'Group Requirements '================== iReq = 3 ' Must meet this number ' of requirements below arrReq2(0) = "(?=.*[a-z])" ' contains lower letter arrReq2(1) = "(?=.*[A-Z])" ' contains upper letter arrReq2(2) = "(?=.*\d)" ' contains digit arrReq2(3) = "(?=.*[^a-zA-Z\d])" ' contains non-alphanumeric sErr = "Password does not meet security requirements" iNum = 0 'String being tested against req's '================================= 'sArg = "passwor" 'sArg = "password" 'sArg = "Password" 'sArg = "P4ssword" sArg = "P4s$word" If not ArgVrf(sArg,arrReq1(0)) Then WScript.Echo sErr WScript.Quit 1 End If For i = LBound(arrReq2) to UBound(arrReq2) If ArgVrf(sArg,arrReq2(i)) Then iNum = iNum+1 Next If iNum<iReq Then WScript.Echo sErr WScript.Quit 1 End If WScript.Echo "Test passed" Function ArgVrf(arg,pattern) Dim objRegExp Set objRegExp = New RegExp objRegExp.IgnoreCase = false objRegExp.Pattern = pattern ArgVrf = objRegExp.Test(arg) Set objRegExp = Nothing End Function ==8<=============== -- Al List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/