如何使用PowerShell命令配置密码策略?
美国、香港服务器
如何使用PowerShell命令配置密码策略?
07-11 来源:
一、独立服务器(非域环境,你的场景)
1. 快速配置密码长度、有效期、账户锁定(简单参数)
powershell
# minpwlen:最少14位;maxpwage:60天过期;minpwage:1天后才能改密码;uniquepw:记住24个旧密码
net accounts /minpwlen:14 /maxpwage:60 /minpwage:1 /uniquepw:24
# 登录失败5次锁定账号,锁定时长30分钟,30分钟重置错误计数
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
执行后查看配置:
powershell
net accounts
2. PowerShell 启用【密码必须符合复杂性要求】(关键步骤)
net accounts 没办法开启复杂度,只能通过导出修改安全配置文件实现:
powershell
#1.导出当前安全策略配置
secedit /export /cfg C:\secpol.cfg
#2.修改配置文件开启复杂度:PasswordComplexity = 1开启,0关闭
(Get-Content C:\secpol.cfg) -replace "PasswordComplexity = 0","PasswordComplexity = 1" | Set-Content C:\secpol_new.cfg
#3.导入配置到系统安全数据库
secedit /configure /db "$env:windir\security\local.sdb" /cfg C:\secpol_new.cfg /areas SECURITYPOLICY
#4.刷新组策略使配置生效
gpupdate /force
生效后规则:新建密码必须包含大写字母、小写字母、数字、特殊字符其中 3 种,不能包含账户名称。
⚠️注意:已经存在的旧密码不会自动生效,管理员需要手动重置密码才会受复杂度约束。
二、一键整合脚本(复制整段直接运行)
powershell
#配置基础密码策略
net accounts /minpwlen:14 /maxpwage:60 /minpwage:1 /uniquepw:24
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
#开启密码复杂度
secedit /export /cfg C:\secpol.cfg
(Get-Content C:\secpol.cfg) -replace "PasswordComplexity = 0","PasswordComplexity = 1" | Set-Content C:\secpol_new.cfg
secedit /configure /db "$env:windir\security\local.sdb" /cfg C:\secpol_new.cfg /areas SECURITYPOLICY
gpupdate /force
Write‑Host "密码策略配置完成,执行net accounts查看结果"
三、AD 域环境(域控服务器专用)
域环境下本地安全策略不生效,只能在域控制器执行:
powershell
#先导入AD模块
Import‑Module ActiveDirectory
Set‑ADDefaultDomainPasswordPolicy -Identity yourdomain.com `
-MinPasswordLength 14 `
-MaxPasswordAge (New‑TimeSpan -Days 60) `
-MinPasswordAge (New‑TimeSpan -Days 1) `
-PasswordHistoryCount 24 `
-ComplexityEnabled $true `
-LockoutThreshold 5 `
-LockoutDuration (New‑TimeSpan -Minutes 30) `
-LockoutObservationWindow (New‑TimeSpan -Minutes 30)
四、补充配套安全配置(PowerShell 执行)
1. 启用空白密码限制(只允许控制台登录,禁止网络远程登录)
powershell
secedit /export /cfg C:\secpol.cfg
(Get-Content C:\secpol.cfg) -replace "LimitBlankPasswordUse = 0","LimitBlankPasswordUse = 1" | Set-Content C:\secpol_new.cfg
secedit /configure /db "$env:windir\security\local.sdb" /cfg C:\secpol_new.cfg /areas SECURITYPOLICY
gpupdate /force
2. 查看最终生效的密码策略
powershell
net accounts
#查看本地安全策略全部信息
Get‑LocalUserOption
五、重要注意事项
修改策略后,已存在的管理员旧密码不会自动符合规则,需要手动重新设置密码;
建议密码格式示例:Admin@2026WinServer(大写 + 小写 + 数字 + 特殊符号);
3389 远程桌面搭配防火墙仅放行你的公网 IP,不要全网开放;
若后续想关闭复杂度:把代码里 PasswordComplexity =1 修改成 0,再导入配置即可。
六、配套查看登录失败日志(排查暴力破解)
powershell
#查看3389登录失败日志(事件ID4625)
Get‑WinEvent -FilterHashtable @{LogName="Security"; Id=4625} | Select TimeCreated,Message | Format‑List
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快