1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| Option Explicit '--- Force variable declarations for safety!
Dim objArguments, objUser, strDomainOrHost, strUsername, strName, cUserFlags
Const UF_LOCKOUT = &H0010
Set objArguments = WScript.Arguments
If(objArguments.Count < 2) Then
Call Usage()
End If
strDomainOrHost = objArguments(0)
strUsername = objArguments(1)
set objUser = GetObject("WinNT://" & strDomainOrHost & "/" & strUserName & ",User")
strName = objUser.Get("FullName")
cUserFlags = objUser.Get("UserFlags")
If(cUserFlags And UF_LOCKOUT) Then
objUser.Put "UserFlags", objUser.Get("UserFlags") Xor UF_LOCKOUT
objUser.SetInfo
cUserFlags = objUser.Get("UserFlags")
If(cUserFlags And UF_LOCKOUT) Then
WScript.Echo "User: " & strName & vbNewLine & "Unlock FAILED:-("
Else
WScript.Echo "User: " & strName & vbNewLine & "Unlock SUCCESSFUL:-)"
End If
Else
WScript.Echo "User: " & strName & vbNewLine & "User Account IS NOT Locked Out."
End If
Set objArguments = Nothing
Set objUser = Nothing
WScript.Quit(1)
Sub Usage()
WScript.Echo "Usage:" & vbNewLine & vbNewLine &_
"c:\> unlckusr DomainOrHostname Username" & vbNewLine & vbNewLine &_
"DomainOrHostname: Domain -or- hostname where the target account resides." &_
vbNewLine & vbNewLine &_
"Username: Target user account that's locked out."
WScript.Quit(0)
End Sub |
Partager