Solved

Domain user accounts, and making sure default password is changed.

Posted on 2014-03-11
7
402 Views
Last Modified: 2014-03-13
Hello,

We have a standard Microsoft based corporate network setup:
Image the desktop computers, add to domain, login the user's login, get their email, printers, etc setup; then have them change the default password creating their own password for their domain login.

What is happening though is that the desktop techs forget to get the users to change their password; or( before giving the computer to the user) forget to put the checkmark back in their AD account( user account properties > Account tab > Account options: > [ ] User must change password at next login.

Is there someway to check/enforce this via a network/microsoft policy in case the default password never gets changed?

Thanks,
0
Comment
Question by:Rob Hutchinson
  • 4
  • 2
7 Comments
 
LVL 19

Expert Comment

by:Peter Hutchison
ID: 39922190
You can either re-tick the box again or change password policy and tell all passwords to expire after x days. This will force your users to change passwords more often and thus not stick with the default password.
0
 
LVL 8

Expert Comment

by:N-W
ID: 39922226
You could run a script like:
Option Explicit

Const ADDS_SECURE_AUTHENTICATION = 1
Const strDomain = "mydomain.local" ' Change this to your domain
Const strPassword = "mypassword" ' Change this to the password you want to check
Dim strUsername
strUsername = InputBox("Username?")

If CheckCredentials(strDomain, strUsername, strPassword) Then
	MsgBox("Credentials are valid.")
Else
	MsgBox("Credentials are invalid.")
End If

Function CheckCredentials(Domain, Account, Password)
	On Error Resume Next
    Dim objIADS	
	Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://" & Domain & "/" & Account & ",user" , Account, Password, ADDS_SECURE_AUTHENTICATION)
    If err.number = 0 then
		CheckCredentials = True
	Else
		CheckCredentials = False
	End If
End Function

Open in new window


Change the variables on lines 4 and 5 to be your domain and password. Save it as a VBScript file (i.e. "CheckPassword.vbs") and run it. It will prompt you for the username you want to check and tell you if the password is valid or not.

You could also modify the script to check all users in your domain, or a list of users from a text file, etc.
0
 
LVL 19

Author Comment

by:Rob Hutchinson
ID: 39922230
Yeh, was hoping that there is some group policy to make sure that the default password is no longer used, or to check that a password change has occured under the user accounts.

And maybe specific instructions to implement the group policy to check when the last password change was made for new accounts, then force a password change if the default password is detected as being used.

There is already a policy in place to make the users change their password every 90 days, but it's making sure that they change the password on new AD accounts if the tick box does not get checked like it should.
0
Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

 
LVL 19

Author Comment

by:Rob Hutchinson
ID: 39922242
@ N-W

Not to check whether or not the account/password is valid or not, but just to check to see if the password used is the original user account default. Then make sure that the user is prompted to change that password.

I guess the script could be run on all accounts to check if the known default password is being used...then the user will be forced to change the default password to a new password.

Almost like a behind the scenes script that automatically periodically checked that the default user password was not still being used by a user.
0
 
LVL 8

Accepted Solution

by:
N-W earned 500 total points
ID: 39922323
This script will check the password against all users in the domain and force them to change it if it matches:
Option Explicit

Const ADDS_SECURE_AUTHENTICATION = 1
Const strLDAPDomain = "DC=mydomain,DC=local" ' Change this to your domain
Const strWinDomain = "mydomain.local" ' Change this to your domain
Const strPassword = "mypassword" ' Change this to the password you want to check

Dim objConnection
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"

Dim objCommand
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.CommandText = "<LDAP://" & strLDAPDomain & ">;" & "(&(objectclass=user)(objectcategory=person));" & "adspath,sAMAccountName"

Dim objRecordSet
Set objRecordSet = objCommand.Execute

Do Until objRecordSet.EOF
	Dim strCurrentUser
	strCurrentUser = objRecordSet.Fields("sAMAccountName").Value
	If CheckCredentials(strWinDomain, strCurrentUser, strPassword) Then
		ForcePasswordChange(objRecordSet.Fields("adspath").Value)
	End If
	objRecordSet.MoveNext
Loop

Function CheckCredentials(Domain, Account, Password)
	On Error Resume Next
    Dim objIADS	
	Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://" & Domain & "/" & Account & ",user" , Account, Password, ADDS_SECURE_AUTHENTICATION)
    If err.number = 0 then
		CheckCredentials = True
	Else
		CheckCredentials = False
	End If
End Function

Sub ForcePasswordChange(adspath)
	Dim objUser
	Set objUser = GetObject(adspath)
	objUser.put "pwdLastSet", 0
	objuser.setinfo
End Sub

objRecordSet.Close
Set objRecordSet = Nothing
Set objCommand = Nothing
objConnection.Close
Set objConnection = Nothing

Open in new window


You can set it as a scheduled task to run periodically if desired.
0
 
LVL 19

Author Comment

by:Rob Hutchinson
ID: 39928040
Awesome, thx tons. A lot easier than manually doing this =)
0
 
LVL 19

Author Closing Comment

by:Rob Hutchinson
ID: 39928041
Awesome, thx tons. A lot easier than manually doing this =)
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

INTRODUCTION The purpose of this document is to demonstrate the Installation and configuration of the Data Protection Manager product. Note that this demonstration was prepared on the basis of Windows OS is 2008 R2 and DPM 2010. DATA PROTECTI…
It’s been over a month into 2017, and there is already a sophisticated Gmail phishing email making it rounds. New techniques and tactics, have given hackers a way to authentically impersonate your contacts.How it Works The attack works by targeti…
This video Micro Tutorial explains how to clone a hard drive using a commercial software product for Windows systems called Casper from Future Systems Solutions (FSS). Cloning makes an exact, complete copy of one hard disk drive (HDD) onto another d…
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…

785 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