2017-10-07 27 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.Butを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日後にユーザーがパスワードを変更する必要があるようにすることです。ローカルユーザーのために、またはアクティブなディレクトリにアクセスできる場合にのみ行う方法がありますか? –

関連する問題