I am trying to create a windows form application/tool that speeds up the process of the way we disable employees account for leave our organization. So far I have created a form that allows the user to input the user name of the account and click a button that searches active directory and displays who the account belongs two, the next step that I am trying to implement is after clicking a second button the application would disable the account, move to the disabled users OU, update the description and hide from the global address list, however I am having issue link the returned account so that it can move on to disable the account, this is where your help would be appreciated in the best way forward. Thanks
Imports System.DirectoryServices.AccountManagement Imports System.DirectoryServices Public Class FrmLeaversTool Dim insPrincipalContext As New PrincipalContext(ContextType.Domain, "domain", "DC=,DC=,DC=com") Dim currentADUser As System.DirectoryServices.AccountManagement.UserPrincipal Private Sub ListUsers(ByVal strUsername As String) Dim insUserPrincipal As New UserPrincipal(insPrincipalContext) insUserPrincipal.SamAccountName = strUsername SearchUsers(insUserPrincipal) End Sub Private Sub SearchUsers(ByVal parUserPrincipal As UserPrincipal) Dim insPrincipalSearcher As New PrincipalSearcher() 'Dim currentADUser As System.DirectoryServices.AccountManagement.UserPrincipal insPrincipalSearcher.QueryFilter = parUserPrincipal Dim results As PrincipalSearchResult(Of Principal) = insPrincipalSearcher.FindAll For Each p As Principal In results currentADUser = p If currentADUser.Enabled = True Then LogDetails("Account Name: " & currentADUser.GivenName & " " & currentADUser.Surname) LogDetails("Account Enabled: " & currentADUser.Enabled) LogDetails("Account Description: " & currentADUser.Description) LogDetails("Account Password Set on: " & currentADUser.LastPasswordSet) Else MsgBox("Account already disabled") End If Next End Sub Private Sub LogDetails(ByVal strString As String) txtResults.Text = txtResults.Text & strString & vbCrLf End Sub Private Sub cmdFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFind.Click ListUsers(txtUsername.Text) End Sub Private Sub cmdRun_Click(sender As Object, e As EventArgs) Handles cmdRun.Click tmrProgress.Start() lblStatus.Text = "In Progress" End Sub Private Sub tmrProgress_Tick(sender As Object, e As EventArgs) Handles tmrProgress.Tick pgbProgress.Increment(1) cmdReset.Enabled = False Me.Cursor = Cursors.WaitCursor If pgbProgress.Value = 10 Then chk1.Checked = True 'Disable Account End If If pgbProgress.Value = 30 Then chk2.Checked = True 'Reset password End If If pgbProgress.Value = 50 Then chk3.Checked = True 'Description updated End If If pgbProgress.Value = 70 Then chk4.Checked = True 'Hidden from the GAL End If If pgbProgress.Value = 90 Then chk5.Checked = True 'Move account to disabled OU End If If pgbProgress.Value = pgbProgress.Maximum Then lblStatus.Text = "Completed" tmrProgress.Stop() Me.Cursor = Cursors.Default pgbProgress.Value = 0 cmdSend.Enabled = True cmdReset.Enabled = True End If End Sub