加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何编写脚本来修改Windows Server上用户的密码到期值?

发布时间:2020-12-14 01:47:48 所属栏目:Windows 来源:网络整理
导读:我需要在 Windows 2008服务器上创建多个用户,并将密码到期值修改为“从不”.这些将是本地(非AD)用户.我可以使用“net user”创建它们,它正在修改杀死我的通过期限.如果我执行“净用户用户名”,它会列出字段及其值,但没有开关(至少没有帮助文件引用的那个)来
我需要在 Windows 2008服务器上创建多个用户,并将密码到期值修改为“从不”.这些将是本地(非AD)用户.我可以使用“net user”创建它们,它正在修改杀死我的通过期限.如果我执行“净用户用户名”,它会列出字段及其值,但没有开关(至少没有帮助文件引用的那个)来修改它,我在网上看到的大多数解决方案建议安装第三方工具但是,此解决方案必须是Windows原生的(理想情况下使用Powershell).任何帮助表示赞赏.

UPDATE

我说如果我在Powershell中想出如何做到这一点,我会把它发布在这里,我是一个言行一致的人.

Get-WmiObject -Class Win32_UserAccount -Filter“name =’steve’”| Set-WmiInstance -Argument @ {PasswordExpires = 0}

这是一个布尔值,所以如果你想设置一个密码到期只需将0改为1.这对我来说很简单,我测试了这个方法更新其他WMI对象,它每次都有效.

简单的解决方案是创建一个发出以下命令的批处理文件:
net accounts /maxpwage:unlimited

但是,这会将本地计算机上所有帐户的最长密码期限设置为无限制,而不仅仅是您创建的新帐户.

如果您需要更精细的控制级别(即,为各个用户设置密码到期值的能力),您将需要更复杂的东西. VBScript的Scripting Guys share an example将修改本地用户帐户,以使其密码永不过期:

Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 

strDomainOrWorkgroup = "Fabrikam" 
strComputer = "atl-win2k-01" 
strUser = "KenMeyer" 

Set objUser = GetObject("WinNT://" & strDomainOrWorkgroup & "/" & _ 
    strComputer & "/" & strUser & ",User") 

objUserFlags = objUser.Get("UserFlags") 
objPasswordExpirationFlag = objUserFlags OR ADS_UF_DONT_EXPIRE_PASSWD 
objUser.Put "userFlags",objPasswordExpirationFlag  
objUser.SetInfo

可以很容易地将其修改为适合您选择的任何用户,甚至可以创建新用户.

最后,here’s an example in C#,您应该能够移植到PowerShell.我不是PS专家,但考虑到它使用.NET Framework,上面的代码应该给你一些想法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读