VBscript,它将使本地用户在下次登录时更改密码
VBscript, which will MAKE a local user change their password at next login
好的,所以我现在一直在做这个,但我找不到真正有效的答案。因此,我正在尝试创建一个脚本,让本地用户在下次登录时更改密码。我看了又看,但没有任何帮助。虽然我觉得我很接近但缺少一些东西。现在我要说的是,我对一般的脚本编写非常非常陌生,如果我看起来很笨,我很抱歉,但我很乐意得到帮助。另外,我正在使用 Windows 10(不确定这是否会有所作为)。我也在为一项学校作业创建这个,我确实向我的老师求助过,但一周以来我一直没有听到任何消息。谢谢!
现在这是我所拥有的:
strComputer = "LAPTOP-56BDJGPQ"
Set usr = GetObject("WinNT://LAPTOP-56BDJGPQ/Guest,user")
usr.Put "PasswordExpired", 1
usr.SetInfo
现在,我知道它说的 /Guest,user 可能不正确,但我也尝试过使用我的管理员帐户,即使那样似乎什么也没做。
这是我 运行 时发生的情况(现在,我 运行 通过命令提示符执行所有操作)
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 标志(如果已设置)。
好的,所以我现在一直在做这个,但我找不到真正有效的答案。因此,我正在尝试创建一个脚本,让本地用户在下次登录时更改密码。我看了又看,但没有任何帮助。虽然我觉得我很接近但缺少一些东西。现在我要说的是,我对一般的脚本编写非常非常陌生,如果我看起来很笨,我很抱歉,但我很乐意得到帮助。另外,我正在使用 Windows 10(不确定这是否会有所作为)。我也在为一项学校作业创建这个,我确实向我的老师求助过,但一周以来我一直没有听到任何消息。谢谢!
现在这是我所拥有的:
strComputer = "LAPTOP-56BDJGPQ"
Set usr = GetObject("WinNT://LAPTOP-56BDJGPQ/Guest,user")
usr.Put "PasswordExpired", 1
usr.SetInfo
现在,我知道它说的 /Guest,user 可能不正确,但我也尝试过使用我的管理员帐户,即使那样似乎什么也没做。
这是我 运行 时发生的情况(现在,我 运行 通过命令提示符执行所有操作)
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 标志(如果已设置)。