Script para alteração da flag de expiração de senha

Este script tem como objetivo ser uma ferramenta de apoio para correção de contas de domínio ou contas locais que outrora foram criadas com a flag de expiração de senha, posterior a isso você pode optar por usar uma GPO para realizar a alteração da flag para novas contas que venham ser cadastradas.

Option Explicit

On Error Resume Next

Const naoExpira = &H10000

Dim colNamedArguments
Dim strDomain, strUser

Set colNamedArguments = WScript.Arguments.Named

If colNamedArguments.Exists(“domain”) Then
strDomain=colNamedArguments.Item(“domain”)
Else
WScript.Echo “Missing argument: /domain:domainname”
Usage
End If

If colNamedArguments.Exists(“user”) Then
strUser=colNamedArguments.Item(“user”)
Else
WScript.Echo “Missing argument: /user:username”
Usage
End If

PasswordNeverExpires strDomain, strUser

Sub PasswordNeverExpires(domainname, username)
Dim objUser, objUserFlags

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

objUserFlags = objUser.Get(“UserFlags”)

If (objUserFlags And naoExpira) = 0 Then
objUserFlags = objUserFlags Or naoExpira
objUser.Put “UserFlags”, objUserFlags
objUser.SetInfo
WScript.Echo domainname & “\” & username & ” senha foi setada para não expirar.”
Else
WScript.Echo domainname & “\” & username & ” senha já está setada para não expirar.”
End If

End Sub

‘ ******************************************************************************

Sub Usage()
Wscript.Echo VbCr
WScript.Echo “Usage: cscript expuser.vbs /domain:domainname /user:username”
Wscript.Quit

End Sub

‘ ******************************************************************************

Deixe uma resposta