好的,所以我现在一直在努力,我找不到真正有用的答案。因此,我正在尝试创建一个脚本,使本地用户在下次登录时更改其密码。我看了看,看了看,但没有任何帮助。虽然我觉得我很亲密但却缺少一些东西。现在我会说我对一般的脚本非常非常新,所以如果我看起来很笨,那就很抱歉,但我很乐意帮忙。此外,我正在使用Windows 10(不确定这是否会有所作为)。我也是为了一个学校作业创造这个,我确实向老师请了一只手,但这已经是一周的感觉,我听到了什么。谢谢!
现在这就是我所拥有的:
strComputer = "LAPTOP-56BDJGPQ"
Set usr = GetObject("WinNT://LAPTOP-56BDJGPQ/Guest,user")
usr.Put "PasswordExpired", 1
usr.SetInfo
现在,我知道也许它说/ Guest,用户可能不正确,但我也尝试使用我的帐户管理员,即使这似乎什么都不做。
以下是我运行时发生的事情(现在,我通过命令提示符运行所有内容)
c:\Comp230>cscript USER_Logon_reset.vbs
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.
c:\Comp230>
现在这对我说它跑了,但是当我去测试看它是否运作良好时没有任何事情发生。
我会说我已经尝试过其他方法来编写这个部分,比如替换usr.Put到objUser.Put等等。我会喜欢我能得到的任何输入,因为这很令人沮丧。
答案 0 :(得分:1)
如果设置了Password Never Expires标志,则需要先将其删除才能使密码失效。
请尝试以下方法。
Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000 ' 65536
Set usr = GetObject("WinNT://LAPTOP-56BDJGPQ/JohnDoe,user")
currentFlags = usr.Get("UserFlags")
'check if "password never expires" flag is set. if so, remove it
If currentFlags And ADS_UF_DONT_EXPIRE_PASSWD Then
newFlags = currentFlags - ADS_UF_DONT_EXPIRE_PASSWD
'setting new flags
usr.Put "UserFlags", newFlags
End If
usr.Put "PasswordExpired", 1
usr.SetInfo
如果设置了User Cannot Change Password标记,您可能还需要删除它。