2017-10-07 57 views
3

好的,所以我一直在這樣做,現在我找不到解決此問題的實際工作。所以,我正在嘗試創建一個腳本,這將使本地用戶在下次登錄時更改其密碼。我看了看,看,看,但沒有任何幫助。雖然我覺得我很接近但錯過了一些東西。現在我會說我對一般的腳本非常非常陌生,如果我看起來很笨,我會很抱歉,但我很樂意幫助。此外,我正在使用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等,我會喜歡任何輸入,我可以得到,因爲這是令人沮喪的。

回答

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標誌。

+0

工作。現在我想要做的另一件事是讓用戶在30天后必須更改密碼。有沒有辦法做到這一點本地用戶或只有當你有權訪問活動目錄? –

相關問題