如何通过代码创建无需密码的本地用户账户?
创建无密码本地用户的解决方案
嘿,我刚好碰到过类似的问题!你遇到的异常是因为即便设置了PasswordNotRequired=true,Windows的账户管理系统还是要求你显式初始化密码字段——哪怕是设置一个空密码。直接跳过SetPassword()的话,系统会默认去检查密码策略,自然就报错了。
下面是修改后的可运行代码,能创建无需密码登录的本地用户:
PrincipalContext oPrincipalContext = GetPrincipalContext(); UserPrincipal oUserPrincipal = new UserPrincipal(oPrincipalContext); oUserPrincipal.Name = sUserName; // 关键:设置空密码,配合PasswordNotRequired=true oUserPrincipal.SetPassword(string.Empty); oUserPrincipal.DisplayName = windowsUsername.Text; oUserPrincipal.PasswordNeverExpires = true; oUserPrincipal.PasswordNotRequired = true; oUserPrincipal.Save(); GroupPrincipal usersGroup = GroupPrincipal.FindByIdentity(oPrincipalContext, "Users"); usersGroup.Members.Add(oUserPrincipal); usersGroup.Save();
额外注意事项
- 如果还是抛出密码策略相关异常,你需要调整本地安全策略:
- 按下Win+R,输入
secpol.msc打开本地安全策略 - 依次展开账户策略 > 密码策略
- 将「密码必须符合复杂性要求」设置为已禁用
- 将「密码长度最小值」设置为0
- 按下Win+R,输入
- 默认情况下Windows会限制空密码账户只能通过控制台登录(无法远程登录),如果需要远程登录权限,还要在本地安全策略的本地策略 > 安全选项里,把「账户:空密码的本地账户只允许控制台登录」设置为已禁用。
内容的提问来源于stack exchange,提问作者gtu
相关产品推荐
相关产品推荐

