[VBS]如何將用戶密碼改為永不過期

vbs, jscript, bat等 script 語言-非 web 使用的討論區
回覆文章
頭像
tim
文章: 1380
註冊時間: 2008年 11月 26日, 00:49

[VBS]如何將用戶密碼改為永不過期

文章 tim »

利用 net user 的方式可以將用戶新增出來, 但仍無法避免會有該帳號密碼過期問題. 若是該帳號只是用來做發起一些應用程式時, 而非一般使用者時, 將會有密碼過期後, 沒有被更新而無法繼續發起對應應用程式的問題, 如何來解決這個問題, 當然可以透過手動將該帳號設為"密碼永不過期"(password never expires)即可.

不過若是利用程式來做這件事的話, 可以利用 vbs 來操作, 可以先參考文章:
http://www.markwilson.co.uk/blog/2004/0 ... ry-for.htm

實作如下:

代碼: 選擇全部

domainname = "." '本機
username = "user" '帳號
Const ufDONT_EXPIRE_PASSWD = &H10000

Set objUser = GetObject("WinNT://" & domainname & "/" & username & ",user")

' Examine flags set against account
objUserFlags = objUser.Get("UserFlags")
' If password expiry is allowed, then set password never to expire.
If (objUserFlags And ufDONT_EXPIRE_PASSWD) = 0 Then
	' Password does expire
	' WScript.Echo objUserFlags
	objUserFlags = objUserFlags Or ufDONT_EXPIRE_PASSWD
	' WScript.Echo objUserFlags
	objUser.Put "UserFlags", objUserFlags
	objUser.SetInfo 
	'WScript.Echo domainname & "" & username & " password has been set never to expire."
Else
	' Password does not expire
	' WScript.Echo objUserFlags
	'WScript.Echo domainname & "" & username & " password was already set never to expire."
End If
利用這種方式, 將可以順利將指定的帳號(user)的密碼永不過期設定起來!
多多留言, 整理文章, 把經驗累積下來.....
回覆文章