Function OnPasswordTyping ${NSD_GetText} $1 $adminpass ${NSD_GetText} $2 $adminpassconfirm Call DisableNextButton ${If} $adminpass == "" ${OrIf} $adminpass != $adminpassconfirm Abort ${EndIf} ${RESetOption} "CASELESS" ${If} $adminpass =~ "admin" Abort ${EndIf} ${REClearOption} "CASELESS" ${If} $adminpass !~ "(?=.*[a-z]+)(?=.*[A-Z]+)(?=.*[0-9]+)(?=.{10,})" Abort ${EndIf} Call EnableNextButton FunctionEnd Function FuncInsertCredentials ${If} $installUPGRADE == ${BST_CHECKED} Abort ${EndIf} !insertmacro MUI_HEADER_TEXT "Configuration settings: Admin account" "Please enter configuration settings." nsDialogs::Create /NOUNLOAD 1018 ${NSD_CreateLabel} 0 5u 100% 10u "Enter the password of the $\"admin$\" user:" ${NSD_CreateLabel} 0u 22u 40u 10u "Password:" ${NSD_CreatePassword} 40u 20u 260u 12u "" Pop $1 ${NSD_OnChange} $1 OnPasswordTyping ${NSD_CreateLabel} 0u 37u 40u 10u "Confirm:" ${NSD_CreatePassword} 40u 35u 260u 12u "" Pop $2 ${NSD_OnChange} $2 OnPasswordTyping ${NSD_CreateLabel} 0 58u 100% 20u "NOTE: Password must be at least 10 characters long and contain at least 1 number, 1 uppercase letter and 1 downcase letter. \ Must not contain the word $\"admin$\"." ${NSD_SetFocus} $1 Call DisableNextButton nsDialogs::Show FunctionEnd Function FuncInsertCredentialsLeave FunctionEnd .