在组策略中设置最小密码长度

时间:2020-04-16 08:04:13

标签: c++ winapi policy

我使用Windows API NetUserModalsSet函数编写了一个代码,以设置最小密码长度。 现在,它具有不同的级别(结构)来设置我们想要的

USER_MODALS_INFO_0 此结构使我们可以将密码长度的最大值指定为LM20_PWLEN(14)。如果给出的任何值大于此值,则返回无效参数错误。但是由于我想将其设置为更多,所以我使用了USER_MODALS_INFO_1001,因为它允许PWLEN(256)。

当我使用密码长度> 14的USER_MODALS_INFO_1001结构时,它将返回无效的参数错误。但是,如果我将其定义为14,则它可以正常工作。现在,它应该可以使用任何长度小于等于256的密码,但不能。

是否存在这种现象?我已经附上了我的代码段

    USER_MODALS_INFO_1001 pBufPass;
    DWORD mode = 1001, value = 17,parm_err;
    printf("The minimum password length is going to be set as %lu\n",value);
    pBufPass.usrmod1001_min_passwd_len = value;
    printf("Value that is going to be set is : %lu\n",pBufPass.usrmod1001_min_passwd_len);
    NET_API_STATUS nStatus = NetUserModalsSet(NULL, mode, (LPBYTE)&pBufPass, &parm_err);
    if (nStatus != NERR_Success)
    {
        printf("Error while using NetUserModalsSet. Error code : %lu and parm_err : %lu\n", nStatus, parm_err);
        ret = false;
    }

1 个答案:

答案 0 :(得分:2)

对于USER_MODALS_INFO_1001结构的参数usrmod1001_min_passwd_len

  • Windows 7 支持值 0和14

  • Windows 10 (测试版本1903)支持的值介于 0和256 PWLEN)之间。