![如何通过 .bat 文件通过网络用户创建永不过期的密码和用户](https://linux22.com/image/597725/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20.bat%20%E6%96%87%E4%BB%B6%E9%80%9A%E8%BF%87%E7%BD%91%E7%BB%9C%E7%94%A8%E6%88%B7%E5%88%9B%E5%BB%BA%E6%B0%B8%E4%B8%8D%E8%BF%87%E6%9C%9F%E7%9A%84%E5%AF%86%E7%A0%81%E5%92%8C%E7%94%A8%E6%88%B7.png)
我正在使用.bat file
在 Windows 操作系统级别创建用户和密码。
我面临的问题是,当我输入EXPIRES:NEVER
密码时,创建用户时,没有"Password never expires"
选中复选框(意味着为该创建的用户选择了密码永不过期),并且用户会在 90 天后自动过期。
Net User %1 %2 /COMMENT:"%3" /EXPIRES:NEVER /PASSWORDCHG:NO /ADD
以上是代码的主要行,我从文本文件传递用户名和密码并运行.bat 文件。
答案1
将此行添加到批处理文件中:
WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE
答案2
选项/expires是针对账户的,而不是针对密码的,请查看命令帮助。
http://support.microsoft.com/kb/251394/en-us
摘自文档:“如果指定日期,则会导致用户帐户过期。”
答案3
现在我们有了 Powershell,您可以通过以下方式执行此操作:
New-LocalUser "Login" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -force) -FullName "Name" -Description "Description" –PasswordNeverExpires
或者对于 Active Directory 用户:
New-ADUser -Name "ChewDavid" -OtherAttributes @{'title'="director";'mail'="[email protected]"} -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -force) -passThru -PasswordNeverExpires:$true
答案4
单个 AD 用户
对于活动目录用户,您可以使用修改为单个用户更改它的命令:
dsmod user "CN=username,OU={User Org Unit},DC... etc" -pwdneverexpires yes
多个 AD 用户
如果要批量设置此属性,可以结合使用上述方法对整个组织单位 (OU) 进行设置查询。
首先,列出 OU 中的所有用户(这可以安全运行,因为它只输出用户列表):
dsquery user "OU={your target OU},DC={your domain},DC={your domain extension}"
然后,假设您对上述命令的输出感到满意,您可以像这样将其通过管道传输到 dsmod:
dsquery user "OU={your target OU},DC={your domain},DC={your domain extension}" | dsmod user -pwdneverexpires yes
更多信息(带有屏幕截图)请参见此处:http://www.petenetlive.com/KB/Article/0000532.htm