Solved

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

Posted on 2014-03-11
7
397 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 18

Expert Comment

by:Peter Hutchison
Comment Utility
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
Comment Utility
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
Comment Utility
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
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!

 
LVL 19

Author Comment

by:Rob Hutchinson
Comment Utility
@ 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
Comment Utility
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
Comment Utility
Awesome, thx tons. A lot easier than manually doing this =)
0
 
LVL 19

Author Closing Comment

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

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Hallo! I guess almost every Windows Administrator must have got stumped with this question "Where does WINDOWS store a users cached credentials? Every user who had once logged onto a Server/Desktop while it was connected to the domain could sti…
Many times while working on a computer regardless of any Operating System, lag and crashes seem to creep in, hindering your working speed. Sometimes, it can also cause your work to be lost unexpectedly and as a result, you are unable to meet your de…
In this video, we discuss why the need for additional vertical screen space has become more important in recent years, namely, due to the transition in the marketplace of 4x3 computer screens to 16x9 and 16x10 screens (so-called widescreen format). …
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…

728 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

11 Experts available now in Live!

Get 1:1 Help Now