Solved

Powershell script not running as expected

Posted on 2011-02-18
8
469 Views
Last Modified: 2012-06-27
Experts,

       I created a password reset script but when [1] or [2] is entered the script asks for the user to enter the password. How do I fix this error? It should be if [1] is entered then reset password. [2] then exit out of script.

Thanks, missymadi
0
Comment
Question by:missymadi
  • 6
  • 2
8 Comments
 

Author Comment

by:missymadi
ID: 34927455
Here is the code......
# Ask for a username

$Username = Read-Host "Enter UserName"

# Search for the user(s)

$Users = Get-QADUser -SamAccountName $Username | Select-Object Name, DN, 
  PasswordLastSet, PasswordAge,PasswordExpires, PasswordNeverExpires, 
  UserMustChangePassword, PasswordIsExpired, PasswordStatus


# Display the user(s)

$Users

# Ask if they wish to proceed

$Response = Read-Host "Do you want to reset the user's password?`n[1] Yes, [2] No"

# Ask for password 

$Password1 = Read-Host "Please enter a password to use"
$Password2 = Read-Host "Please re-enter the password to confirm"

If ($Password1 -ne $Password2) {

  Write-Host "Passwords do not match. Aborting script." -ForegroundColor Red

} Else {

  # Perform work

  If ($Response -eq "1" ) {
    # For each user we found earlier, set the password. Log a few things and the name of the 
    # user running this script 

    $Users | ForEach-Object { 
      Set-QADUser $_.DN -UserPassword $Password1
      Write-Host "Password reset for $($_.Name)"
    } | Select-Object SamAccountName, PasswordLastSet, @{n='SetBy';e={ $Env:Username }} |
      Out-File c:\PwdChanged.txt -Append
  }
}

Open in new window

0
 
LVL 70

Expert Comment

by:Chris Dent
ID: 34927522

Oops, sorry :)
# Ask for a username

$Username = Read-Host "Enter UserName"

# Search for the user(s)

$Users = Get-QADUser -SamAccountName $Username | Select-Object Name, DN, 
  PasswordLastSet, PasswordAge,PasswordExpires, PasswordNeverExpires, 
  UserMustChangePassword, PasswordIsExpired, PasswordStatus


# Display the user(s)

$Users

If ($Users) {

  # Ask if they wish to proceed

  $Response = Read-Host "Do you want to reset the user's password?`n[1] Yes, [2] No"

  If ($Response -eq "1") {

    # Ask for password 

    $Password1 = Read-Host "Please enter a password to use"
    $Password2 = Read-Host "Please re-enter the password to confirm"

    If ($Password1 -ne $Password2) {

      Write-Host "Passwords do not match. Aborting script." -ForegroundColor Red

    } Else {

      # Perform work

      # For each user we found earlier, set the password. Log a few things and the name of the 
      # user running this script 

      $Users | ForEach-Object { 
        Set-QADUser $_.DN -UserPassword $Password1
        Write-Host "Password reset for $($_.Name)"
      } | Select-Object SamAccountName, PasswordLastSet, @{n='SetBy';e={ $Env:Username }} |
        Out-File c:\PwdChanged.txt -Append
    }
  }
}

Open in new window

Chris
0
 

Author Comment

by:missymadi
ID: 34927627
the paren at the end! I should have caught that!
Any suggestions for a free editor. I'm just using text files to look at the programs. A good editor would have helped me catch this! Also, any tips on good tutorials for Powershell?

Thanks, Missymadi





0
 

Author Comment

by:missymadi
ID: 34927644
bracket at end!
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:missymadi
ID: 34927752
OK, I see where you moved the If statement!
0
 

Author Comment

by:missymadi
ID: 34928021
I'm getting an error on line 7. Get-QADUser is not recognized as the name of a cmdlet. However, I have already added the snap-in Add-PSSnapin Quest.ActiveRoles.ADManagement. What else could be the problem?
0
 
LVL 70

Accepted Solution

by:
Chris Dent earned 500 total points
ID: 34928817

Hmm nothing more than that really. How are you executing this?

I'm not so good at editors, I tend to use Notepad++ and paste into the console or execute scripts. Some people have luck with PowerGUI, others are happy with PowerShell ISE (the editor that comes with PS 2). There are a number of other editors kicking around, including PrimalScript (Sapien).

Links :)

PowerGUI: http://www.powergui.org/downloads.jspa
PrimalScript: http://www.primalscript.com/

Chris
0
 

Author Comment

by:missymadi
ID: 34928912
Thanks for the information!

Can you help me on another open question?  ID: 26831748 I am trying to encrypt clear passwords.
I'll close this question out. Thanks for your help!

Missymadi
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Synchronize a new Active Directory domain with an existing Office 365 tenant
This article explains how to prepare an HTML email signature template file containing dynamic placeholders for users' Azure AD data. Furthermore, it explains how to use this file to remotely set up a department-wide email signature policy in Office …
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now