Script Example: Unlock / Reset Users AD Password

Example scripts and tips (replaces Old Scripts & Tips archive)

Moderators: Dorian (MJT support), JRL, Phil Pendlebury

Post Reply
User avatar
CyberCitizen
Automation Wizard
Posts: 721
Joined: Sun Jun 20, 2004 7:06 am
Location: Adelaide, South Australia

Script Example: Unlock / Reset Users AD Password

Post by CyberCitizen » Mon Jan 06, 2014 3:28 am

Hey Guys,

Haven't posted a script in a while. Here is a recent one I wrote for Microsoft Service Manager. We are making the move over to Service Manager for our call logging and we have the option of creating quick links / shortcuts to apps and commands. Wrote this one for unlocking / resetting AD user accounts. I could of created a dialog, however wanted to keep it simple, feedback welcome.

Image

Code: Select all

Let>MSG_HEIGHT=320
Let>MSG_WIDTH=500
Let>MSG_STAYONTOP=1
Let>MSG_CENTERED=1

ExtractFileName>Command_Line,strFileName
ExtractFileExt>Command_Line,strExt
StringReplace>%strFileName%,",,strFileName
StringReplace>%strExt%,",,strExt
StringReplace>%strFileName%,%strExt%,,strFileName
Trim>%strFileName%,strFileName
Let>APP_TITLE=%strFileName%

GoSub>GetCurrentDay

If>vUsername={"vUsername"}
  MDL>No Username Was Specified.  The Application Must Be Run With A Command Line Switch Like Below.%CRLF%%CRLF%%COMMAND_LINE%/vUsername=%USER_NAME%%CRLF%%CRLF%Written By Michael Allen © 2013%CRLF%[email protected]%CRLF%Mobile: 0413 392 169%CRLF%%CRLF%MJTECH MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. MJTECH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL MJTECH BE LIABLE TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. MJTECH WILL NOT PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE.
  Let>INPUT_BROWSE=0
  Input>vUsername,Please Enter Username To Unlock / Reset,
  If>vUsername=,End
  Uppercase>%vUsername%,vUsername
  GoSub>AccountCheck
Else
  Uppercase>%vUsername%,vUsername
  GoSub>AccountCheck
EndIf

SRT>AccountCheck
  Let>RP_WAIT=1
  Let>RP_WINDOWMODE=0
  Let>RP_DISPLAYERROR=0
  Run>%SYS_NATIVE%\cmd.exe /c net user /DOMAIN %vUsername% | Find "Account active" > %TEMP_DIR%AcctChk.txt
  Run>%SYS_NATIVE%\cmd.exe /c net user /DOMAIN %vUsername% | Find "Full Name" > %TEMP_DIR%AcctName.txt
  ReadFile>%TEMP_DIR%AcctChk.txt,vAcctChkResult
  ReadLn>%TEMP_DIR%AcctName.txt,1,vAcctNameResult
  DeleteFile>%TEMP_DIR%AcctChk.txt
  DeleteFile>%TEMP_DIR%AcctName.txt
  Trim>%vAcctChkResult%,vAcctChkResult
  Trim>%vAcctNameResult%,vAcctNameResult
  StringReplace>%vAcctChkResult%,Account active,,vAcctChkResult
  StringReplace>%vAcctNameResult%,Full Name,,vAcctNameResult
  StringReplace>%vAcctChkResult%,%SPACE%%SPACE%%SPACE%,,vAcctChkResult
  StringReplace>%vAcctChkResult%,%SPACE%%SPACE%,,vAcctChkResult
  StringReplace>%vAcctNameResult%,%SPACE%%SPACE%%SPACE%,,vAcctNameResult
  StringReplace>%vAcctNameResult%,%SPACE%%SPACE%,,vAcctNameResult
  UpperCase>%vAcctChkResult%,vAcctChkResult
  UpperCase>%vAcctNameResult%,vAcctNameResult
  If>%vAcctChkResult%=
    MDL>No Account Found For Username: %vUsername%.%CRLF%%CRLF%Please Check The Spelling And Try Again!
    Goto>SubEnd
  EndIf
  MDL>ACTIVE ACCOUNT:		%vAcctChkResult%%CRLF%USERS NAME:		%vAcctNameResult%%CRLF%USERS ID:		%vUsername%
  Ask>Would You Like To Unlock The User Account %vUsername%?,vAskResult
  If>%vAskResult%=YES
    Run>%SYS_NATIVE%\cmd.exe /c net user /DOMAIN %vUsername% /ACTIVE:YES > %TEMP_DIR%UnlockStatus.txt
    ReadFile>%TEMP_DIR%UnlockStatus.txt,vUnlockStatus
    DeleteFile>%TEMP_DIR%UnlockStatus.txt
    MDL>%vUnlockStatus%
  EndIf
  Ask>Would You Like To Reset The User Password For Account %vUsername%?,vAskResult
  If>%vAskResult%=YES
    Let>INPUT_BROWSE=0
    Input>vNewPassword,Please Enter New Password,%vDefaultNewPass%
    Run>%SYS_NATIVE%\cmd.exe /c net user /DOMAIN %vUsername% %vNewPassword% /ACTIVE:YES > %TEMP_DIR%ResetStatus.txt
    ReadFile>%TEMP_DIR%ResetStatus.txt,vResetStatus
    DeleteFile>%TEMP_DIR%ResetStatus.txt
    MDL>%vResetStatus%
  EndIf
  Label>SubEnd
END>AccountCheck

SRT>GetCurrentDay
  Day>the_day
  DayOfWeek>vDayResult
  Goto>Day%vDayResult%
  Label>Day1
  Let>DayString=Sunday
  Goto>Continue
  Label>Day2
  Let>DayString=Monday
  Goto>Continue
  Label>Day3
  Let>DayString=Tuesday
  Goto>Continue
  Label>Day4
  Let>DayString=Wednesday
  Goto>Continue
  Label>Day5
  Let>DayString=Thursday
  Goto>Continue
  Label>Day6
  Let>DayString=Friday
  Goto>Continue
  Label>Day7
  Let>DayString=Saturday
  Goto>Continue
  Label>Continue
  Let>vDefaultNewPass=%DayString%%the_day%
END>GetCurrentDay

Label>End
FIREFIGHTER

Post Reply
Sign up to our newsletter for free automation tips, tricks & discounts