手动修改密码策略
在运行框中输入 secpol.msc 可以打开 本地安全设置 ,其中 密码策略 如图所示

密码策略项的确认
需要以管理员权限运行CMD控制台,然后运行如下指令
1 | secedit /export /cfg c:\1.inf /log c:\1.log |
就可以把当前的 本地安全设置 导出到C盘根目录下的1.inf文件中。
这里只关注 复杂性要求 和 最小长度 两项,手动修改 复杂性要求 为启用,并设置 最小长度 为8

然后再次使用指令导出当前的配置信息到2.inf中
1 | secedit /export /cfg c:\2.inf /log c:\2.log |
如此,两个文件文件只有 复杂性要求 和 最小长度 发生了变化,使用文本比较工具可以看到

其中 MinimumPasswordLength 由0变成了8,对应的是 密码长度最小值 项,
而 PasswordComplexity 由0变成了1,对应的是 密码必须符合复杂性要求 项。
用指令修改密码策略
在C盘根目录下创建3.inf配置文件,文件内容如下,其中数值可自行修改

其中 [Version] 字段和 signature=”$CHICAGO$” 条目必须保留,
在CMD控制台中输入如下指令,来设置3.inf配置文件中包含的配置信息
1 | secedit /configure /cfg c:\3.inf /db c:\3.db /log c:\3.log |
执行完毕后如图所示,表示配置已完成,可以手动打开 本地安全配置 查看结果

最后的结语
所有的导出和配置操作,都是通过 secedit.exe 来处理的,位于 C:\Windows\System32 目录下,
可以配置好inf文件,并使用 CreateProcess 或者 ShellExecute 等API嵌入到代码中执行。