VBscript,这将使本地用户在下次登录时更改密码
问题描述:
好的,所以我一直在这样做,现在我找不到解决此问题的实际工作。所以,我正在尝试创建一个脚本,这将使本地用户在下次登录时更改其密码。我看了看,看,看,但没有任何帮助。虽然我觉得我很接近但错过了一些东西。现在我会说我对一般的脚本非常非常陌生,如果我看起来很笨,我会很抱歉,但我很乐意帮助。此外,我正在使用Windows 10(不知道这是否会有所作为)。我也是为一个学校作业创作这个作品的,我确实要求我的老师帮忙,但是我已经听到了一个星期的感觉。谢谢!VBscript,这将使本地用户在下次登录时更改密码
现在,这里是我:
strComputer = "LAPTOP-56BDJGPQ"
Set usr = GetObject("WinNT://LAPTOP-56BDJGPQ/Guest,user")
usr.Put "PasswordExpired", 1
usr.SetInfo
现在,我知道,也许在那里说/客户,用户可能是不正确的,但我一直在使用我的帐户,这是管理也试过,甚至似乎无所事事。
这是当我运行它(通过命令提示符现在,我跑的一切)
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等,我会喜欢任何输入,我可以得到,因为这是令人沮丧的。
答
如果设置了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标志。
工作。现在我想要做的另一件事是让用户在30天后必须更改密码。有没有办法做到这一点本地用户或只有当你有权访问活动目录? –