Solved

How to I identify "User must change password at next logon" attribute in Active Directory

Posted on 2009-06-29
2
891 Views
Last Modified: 2012-08-13
I simply want to enumerate the accounts in active directory that have the "User must change password at next logon" box checked. I have attached a bitmap to show you what I am refering to and the code for enumeration is included. Prefereably the solution should be in vbscript or vb.
SelectValue = "REGIS T. HYDE"

SetLdapRecordSource CnUserRs, CnUserCn, SelectValue, 1 
 

Do While Not CnUserRs.EOF 
 

WScript.Echo CnUserRs.Fields("pwdLastSet").value
 

CnUserRs.Movenext

Loop

CloseTables CnUserRs,CnUserCn
 
 
 
 
 

Sub Get_Record_Set(ByRef RsVal)
 

'***********************'

'*       Summary       *'

'***********************'

'****************************************************************************'

'*    This module will create an ado recordset object. It basically sets    *'

'*    aside memory allocation for the source that will be used for data     *'

'*    manipulation.                                                         *'

'****************************************************************************'

   

    Set RsVal = CreateObject("ADODB.Recordset")

        

End Sub
 
 
 

Sub SetLdapRecordSource(ByRef RsTemp, ByRef cnTemp,ByRef SelectValue, ByRef CaseTemp)

    

    Get_Record_Set RsTemp

    Open_LdapConnection RsTemp, cnTemp

    Select_Source RsTemp, SelectValue, CaseTemp

   

End Sub
 
 
 

Sub Open_LdapConnection(ByRef RsVal1, ByRef cnTemp)
 

'***********************'

'*       Summary       *'

'***********************'

'****************************************************************************'

'*    This module will create an ado connection object. It basically allows *'

'*    the recordset to attach to the appropriate ldap data source.          *'

'****************************************************************************'

   

    Const ADS_SCOPE_SUBTREE = 2

    

    Set cnTemp = CreateObject("ADODB.Connection")

    cnTemp.ConnectionString = "Provider=ADsDSOObject"

    cnTemp.Open

   

    RsVal1.ActiveConnection = cnTemp

    'RsVal1.Properties("searchscope") = ADS_SCOPE_SUBTREE

    

    RsVal1.Properties("Page Size") = 1000

    RsVal1.Properties("Timeout") = 30  

    RsVal1.Properties("Searchscope") = ADS_SCOPE_SUBTREE 

    RsVal1.Properties("Cache Results") = False 

    

    

    

    

    RsVal1.CursorLocation = 3

    RsVal1.LockType = 3

   

    

End Sub
 
 
 

Sub Select_Source(ByRef RsVal, Byref SelectValue ,ByVal SourceNum)
 
 
 

Select Case SourceNum
 
 
 

Case 1

         

          RsVal.Source ="<LDAP://DC=winroot,DC=svmh,DC=com>;" & _   

          "(&(objectCategory=person)(objectClass=user)(cn=" & SELECTVALUE & "));" & _ 

          "cn,pwdLastSet,distinguishedName,SamaccountName,extensionAttribute1,msExchHomeServerName,mail;subtree" 

          RsVal.Sort = "cn ASC" 

          
 

            

        End Select

    

  

  

  RsVal.Open

  If RsVal.EOF Then

    Exit Sub

  End If

  RsVal.MoveFirst

  

 

            

    

End Sub
 
 
 
 
 

Sub CloseTables(ByRef RsVal1, ByRef cnTemp)

    RsVal1.Close

    cnTemp.Close

    Set RsVal1 = Nothing

    Set cnTemp = Nothing

End Sub

Open in new window

AD-USER.bmp
0
Comment
Question by:BLACK THANOS
2 Comments
 
LVL 47

Expert Comment

by:dstewartjr
ID: 24740562
0
 

Accepted Solution

by:
BLACK THANOS earned 0 total points
ID: 24761065
i figured it out. I will post the code tomorrow. It CAN BE DONE.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Introduction When many people think of the WebBrowser (http://msdn.microsoft.com/en-us/library/2te2y1x6%28v=VS.85%29.aspx) control, they immediately think of a control which allows the viewing and navigation of web pages. While this is true, it's a…
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

708 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