如何通过.bat文件通过网络用户创建永不过期的密码和用户


23

我正在使用.bat fileWindows操作系统级别创建用户和密码。

我面临的问题是当我通过时 EXPIRES:NEVER密码时,在创建用户时,没有"Password never expires"选中复选框(这意味着为该创建的用户选择了密码永不过期),并且用户在90天后自动过期。

Net User %1 %2 /COMMENT:"%3" /EXPIRES:NEVER /PASSWORDCHG:NO /ADD

上面是代码的主线,我从文本文件传递用户名和密码,然后运行.bat文件。

Answers:


34

将此行添加到批处理文件中:

WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE

注意:我相信这仅适用于LOCAL帐户,不适用于DOMAIN帐户。但是看来这正是您所需要的……
格伦·沙利文

1
如果本地用户和域用户都存在该用户名,则接受的答案将尝试同时更改本地用户和域用户。(也许它无权更改域用户,并且将为该部分返回“通用失败”,但至少会尝试。)如果您只想更改本地用户,而不是具有如果存在相同的名称,则使用以下名称:WMIC USERACCOUNT WHERE(名称='%1'和域='%computername%')SET PasswordExpires = FALSE
Ronny D'Hoore

2

/ expires选项用于帐户,而不用于密码,请查看命令帮助。

http://support.microsoft.com/kb/251394/en-us

在文档中:“如果指定日期,则导致用户帐户过期。”


尽管从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
Scott Pack

1
第一句话很重要。应该在公认的答案中。


1

单个AD用户

对于活动目录用户,可以使用dsmod命令为单个用户更改它:

dsmod user "CN=username,OU={User Org Unit},DC... etc" -pwdneverexpires yes

多个AD用户

如果您要批量设置此属性,则可以通过结合使用上面的dsquery和整个组织单位(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


0
net accounts /MaxPWAge:unlimited

使密码永不过期;但对于计算机上的所有帐户-对于家用计算机或VM来说都不错


-1

如上所述, net user似乎不允许otpion仅通过帐户过期(通过/ expires)更改密码过期。

这是我用来删除帐户的密码到期时间的方式:

wmic UserAccount where Name='username' set PasswordExpires=False

将“用户名”更改为您要更改的帐户的用户名。


4
这已经是四年前接受的答案。
Sven
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.