Click here to Skip to main content
       

Visual Basic

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page  Show 
QuestionListbox String to RichTextbox. Help Please!memberJanko199322-Feb-13 17:14 
AnswerRe: Listbox String to RichTextbox. Help Please!mvpRichard MacCutchan22-Feb-13 23:21 
AnswerRe: Listbox String to RichTextbox. Help Please!memberTnTinMN24-Feb-13 13:24 
GeneralRe: Listbox String to RichTextbox. Help Please!memberGray_Ang3l24-Feb-13 13:29 
QuestionActive Directory Users OUmemberdsj4122-Feb-13 8:14 
AnswerRe: Active Directory Users OUmvpDave Kreskowiak22-Feb-13 8:45 
GeneralRe: Active Directory Users OUmemberdsj4124-Feb-13 11:20 
Added tags, thank you.
'=================================================================================
' Check all Active Directory accounts to determine what needs to be disabled. 
' If LastLogonTimeStamp is Null and object is older than specified date, it is 
' disabled and moved. If account has been used, but not within duration specified,
' it is disabled and moved. Does not move already disabled accounts
'==================================================================================
 
'==================================================================================
' Set Flag to enable the disabling and moving of unused accounts otherwise create
' log of accounts affected
' 1 - Will Disable and move accounts 
' 0 - Will create ouput log only 
bDisable=1 
 
 '=====================================================================================
' Accounts that haven't been logged in for this amount of days are selected 
iLogonDays=60 
 
'=======================================================================================
' LDAP Location of OUs to search for accounts 
' LDAP location format eg: "OU=Users,OU=Test" 
strSearchOU="OU=Users" 
 
'========================================================================================
' Search depth to find users 
' Use "OneLevel" for the specified OU only or "Subtree" to search all child OUs as well. 
strSearchDepth="OneLevel" 
 
 '========================================================================================
' Location of new OU to move disabled user accounts to 
' eg: "OU=Disabled_Accounts,OU=Test" 
strNewOU="OU=Disabled_Accounts" 
 
'=========================================================================================
' Log file and error log file path 
strLogPath=".\logs\" 
' Error log file name appended with date and .err extension) 
strErrorLog="DisabledAccounts_" 
' Output log file name with date and .log extension) 
strOutputLog="DisabledAccounts_" 
 
'==========================================================================================
sDate = Year(Now()) & Right("0" & Month(Now()), 2) & Right("0" & Day(Now()), 2)  
Set oFSO=CreateObject("Scripting.FileSystemObject") 
If Not oFSO.FolderExists(strLogPath) Then CreateFolder(strLogPath) 
Set output=oFSO.CreateTextFile(strLogPath & strOutputLog & sDate & ".log") 
Set errlog=oFSO.CreateTextFile(strLogPath & strErrorLog & sDate & ".err") 
output.WriteLine "Sam Account Name" &vbTab& "LDAP Path" &vbTab& "Last Logon Date" &vbTab& _
"Date Created" &vbTab& "Home Directory" 
errlog.WriteLine "Sam Account Name" &vbTab& "LDAP Path" &vbTab& "Problem" &vbTab& "Error" 
 
'===========================================================================================
Set rootDSE = GetObject("LDAP://rootDSE") 
Set objConnection = CreateObject("ADODB.Connection") 
objConnection.Open "Provider=ADsDSOObject;" 
Set ObjCommand = CreateObject("ADODB.Command") 
ObjCommand.ActiveConnection = objConnection 
ObjCommand.Properties("Page Size") = 10 
DSEroot=rootDSE.Get("DefaultNamingContext") 
 
Set objNewOU = GetObject("LDAP://" & strNewOU & "," & DSEroot) 
ObjCommand.CommandText = "<LDAP://" & strSearchOU & "," & DSEroot & _
">;(&(objectClass=User)(objectcategory=Person));adspath;" & strSearchDepth 
 
Set objRecordset = ObjCommand.Execute 
 
On Error Resume Next 
 
While Not objRecordset.EOF 
    LastLogon = Null 
    intLogonTime = Null 
 
    Set objUser=GetObject(objRecordset.fields("adspath")) 
 
    If DateDiff("d",objUser.WhenCreated,Now) > iLogonDays Then 
        Set objLogon=objUser.Get("lastlogontimestamp") 
        If Err.Number <> 0 Then 
            WriteError objUser, "Get LastLogon Failed" 
            DisableAccount objUser, "Never" 
        Else 
            intLogonTime = objLogon.HighPart * (2^32) + objLogon.LowPart 
            intLogonTime = intLogonTime / (60 * 10000000) 
            intLogonTime = intLogonTime / 1440 
            LastLogon=intLogonTime+#1/1/1601# 
 
            If DateDiff("d",LastLogon,Now) > iLogonDays Then 
                DisableAccount objUser, LastLogon 
            End If 
        End If 
    End If 
    WriteError objUser, "Unknown Error" 
    objRecordset.MoveNext 
Wend 
 
Sub CreateFolder( strPath ) 
    If Not oFSO.FolderExists( oFSO.GetParentFolderName(strPath) ) Then Call _
	CreateFolder( oFSO.GetParentFolderName(strPath) ) 
    oFSO.CreateFolder( strPath ) 
End Sub 
 
Sub DisableAccount( objUser, lastLogon ) 
    On Error Resume Next 
    If bDisable <> 0 Then 
        If objUser.accountdisabled=False Then 
            objUser.accountdisabled=True 
            objUser.SetInfo 
            WriteError objUser, "Disable Account Failed" 
            objNewOU.MoveHere objUser.adspath, "CN="&objUser.CN 
            WriteError objUser, "Account Move Failed" 
        Else 
            Err.Raise 1,,"Account already disabled. User not moved." 
            WriteError objUser, "Disable Account Failed" 
        End If 
    End If 
    output.WriteLine objUser.samaccountname &vbTab& objUser.adspath &vbTab& lastLogon &vbTab& _
	objUser.whencreated &vbTab& objUser.homedirectory 
End Sub 
 
Sub WriteError( objUser, strProblem ) 
    If Err.Number <> 0 Then 
        errlog.WriteLine objUser.samaccountname &vbTab& objUser.adspath &vbTab& strProblem &vbTab& _
		Replace(Err.Description,vbCrlf,"") 
        Err.Clear 
    End If 
End Sub

GeneralRe: Active Directory Users OUmvpDave Kreskowiak25-Feb-13 10:31 
GeneralRe: Active Directory Users OUmemberdsj4126-Feb-13 0:14 
GeneralRe: Active Directory Users OUmemberdsj415-Mar-13 1:43 
QuestionVolume Button in Text to Speech Convertormembersanju_na21-Feb-13 22:05 
QuestionHttpwebrequest + Socks5membermathisderaltefuchs20-Feb-13 21:49 
AnswerRe: Httpwebrequest + Socks5mvpRichard MacCutchan20-Feb-13 23:00 
QuestionHow can we read lengthy datas in Win Forms - more height than 780 in single page by scroll?memberParamu197320-Feb-13 6:19 
AnswerRe: How can we read lengthy datas in Win Forms - more height than 780 in single page by scroll?mvpEddy Vluggen20-Feb-13 6:39 
GeneralRe: How can we read lengthy datas in Win Forms - more height than 780 in single page by scroll?memberParamu197320-Feb-13 18:50 
GeneralRe: How can we read lengthy datas in Win Forms - more height than 780 in single page by scroll?mvpEddy Vluggen21-Feb-13 7:03 
QuestionMaximize MDIParent and MDIChild controlmemberkurja-kurdoh19-Feb-13 6:41 
AnswerRe: Maximize MDIParent and MDIChild controlmemberSimon_Whale19-Feb-13 21:58 
QuestionDisable local accountsmemberdouglas.s.johnson@l-3com.com19-Feb-13 5:57 
AnswerRe: Disable local accountsmvpEddy Vluggen20-Feb-13 0:32 
GeneralRe: Disable local accountsmemberdsj4120-Feb-13 11:22 
QuestionMenuId saved in Mysql DB and how to set Enablememberpalur198118-Feb-13 1:31 
AnswerRe: MenuId saved in Mysql DB and how to set EnablemvpEddy Vluggen18-Feb-13 22:31 
QuestionAnyone have a program where I can enter a username and have it provide info from Active Directory?memberanoble115-Feb-13 5:45 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   


Advertise | Privacy | Mobile
Web02 | 2.6.130617.1 | Last Updated 19 Jun 2013
Copyright © CodeProject, 1999-2013
All Rights Reserved. Terms of Use
Layout: fixed | fluid