Actually here is rest of the code:
Imports System
Imports System.DirectoryServices
'Imports System.DirectoryServices.DirectorySearcher
Public Class Form1
Private MySearch As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdDisabled.Click
Dim objSearch As New DirectorySearcher()
Dim lbBox As New ListBox
Dim lblListbox As New Label
Dim txtDomain As New TextBox
Me.lblListbox.Text = "Dislabled Users: "
Me.lbBox.Items.Clear()
objSearch.SearchRoot = New DirectoryEntry(Me.txtDomain.Text)
objSearch.Filter =
"(&(objectCategory=person)(objectClass=user)(userA ccountControl:1.2.840.113556.1.4.803:=2))"
objSearch.SearchScope = SearchScope.Subtree
objSearch.PropertiesToLoad.Add("cn")
Dim colQueryResults As SearchResultCollection
colQueryResults = objSearch.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
Me.lbBox.Items.Add(objResult.Properties("cn")(0))
'Console.WriteLine(objResult.Properties("cn")(0))
Next
End Sub
Private Sub DataGridView1_CellContentClick(ByVal sender As
System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim objSearch As New DirectorySearcher()
Dim txtSearch As New TextBox
Dim lblListbox As New Label
Me.lblListbox.Text = "Active Users:"
Me.lbBox.Items.Clear()
objSearch.SearchRoot = New DirectoryEntry(Me.txtDomain.Text)
objSearch.Filter =
"(&(objectCategory=person)(objectClass=user)(!user AccountControl:1.2.840.113556.1.4.803:=2))"
objSearch.SearchScope = SearchScope.Subtree
objSearch.PropertiesToLoad.Add("cn")
Dim colQueryResults As SearchResultCollection
colQueryResults = objSearch.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
Me.lbBox.Items.Add(objResult.Properties("cn")(0))
Next
End Sub
Private Sub txtSearch2_TextChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles txtSearch.TextChanged
End Sub
Private Sub cmdSearch2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdSearch2.Click
Me.lbBox.Items.Clear()
Me.lblListbox.Text = "Search Results:"
Dim objParent As New DirectorySearcher(Me.txtDomain.Text)
Dim txtSearch As New TextBox
If Me.txtSearch.Text = "" Then
MsgBox("Give me something to search")
End
End If
objParent.Filter = "(&(objectCategory=user)(userPrincipalName=" +
Me.txtSearch.Text + "*))"
objParent.PropertiesToLoad.Add("cn")
objParent.PropertiesToLoad.Add("employeeID")
objParent.PropertiesToLoad.Add("employeeNumber")
objParent.PropertiesToLoad.Add("mail")
Dim colQueryResults As SearchResultCollection
colQueryResults = objParent.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
If objResult.Properties("cn")(0) = "" Then
Me.lbBox.Items.Add("no record found")
End If
Me.lbBox.Items.Add(objResult.Properties("cn")(0))
'Me.lbBox.Items.Add(objResult.Properties("employee ID")(0))
Next
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim objSearch As New DirectorySearcher()
Dim txtSearch As New TextBox
Dim lblListbox As New Label
Me.lblListbox.Text = "Service Accounts:"
Me.lbBox.Items.Clear()
objSearch.SearchRoot = New DirectoryEntry(Me.txtDomain.Text)
objSearch.Filter =
"(&(objectCategory=user)(employeeID=service*)(!emp loyeeNumber=temp))"
objSearch.SearchScope = SearchScope.Subtree
objSearch.PropertiesToLoad.Add("cn")
Dim colQueryResults As SearchResultCollection
colQueryResults = objSearch.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
Me.lbBox.Items.Add(objResult.Properties("cn")(0))
Next
End Sub
Private Sub cmdEdit_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdEdit.Click
Dim lbBox As New ListBox
Dim txtName, txtMail, txtEmployeeID, txtEmployeeNo As New TextBox
Dim objParent As New DirectorySearcher(Me.txtDomain.Text)
'Me.txtName.Text = " "
Dim cmdEdit As New Button
objParent.Filter = "(&(objectCategory=user)(Name=" +
Me.lbBox.SelectedItem + "*))"
objParent.PropertiesToLoad.Add("cn")
objParent.PropertiesToLoad.Add("employeeID")
objParent.PropertiesToLoad.Add("employeeNumber")
objParent.PropertiesToLoad.Add("mail")
Dim colQueryResults As SearchResultCollection
colQueryResults = objParent.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
'Me.lbBox.Items.Add(objResult.Properties("cn")(0))
'Me.lbBox.Items.Add(objResult.Properties("employee ID")(0))
If colQueryResults.Count = "null" Then
End If
Me.txtName.Text = (objResult.Properties("cn")(0))
Me.txtMail.Text = (objResult.Properties("mail")(0))
Me.txtEmployeeID.Text = (objResult.Properties("employeeID")(0))
Me.txtEmployeeNo.Text =
(objResult.Properties("employeeNumber")(0))
Next
'Me.txtName.Text = " "
'Me.txtName.Text = Me.lbBox.SelectedItem(("Name"(1)))
End Sub
Private Sub lbBox_MouseDoubleClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles lbBox.MouseDoubleClick
Dim lbBox As New ListBox
Dim txtName, txtMail, txtEmployeeID, txtEmployeeNo As New TextBox
Dim objParent As New DirectorySearcher(Me.txtDomain.Text)
'Me.txtName.Text = " "
Dim cmdEdit As New Button
If Me.lbBox.SelectedItem = "" Then
MsgBox("Make a selection")
End If
objParent.Filter = "(&(objectCategory=user)(Name=" +
Me.lbBox.SelectedItem + "*))"
objParent.PropertiesToLoad.Add("cn")
objParent.PropertiesToLoad.Add("employeeID")
objParent.PropertiesToLoad.Add("employeeNumber")
objParent.PropertiesToLoad.Add("mail")
Dim colQueryResults As SearchResultCollection
colQueryResults = objParent.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
'Me.lbBox.Items.Add(objResult.Properties("cn")(0))
'Me.lbBox.Items.Add(objResult.Properties("employee ID")(0))
Me.txtName.Text = (objResult.Properties("cn")(0))
Me.txtMail.Text = (objResult.Properties("mail")(0))
Me.txtEmployeeID.Text = (objResult.Properties("employeeID")(0))
Me.txtEmployeeNo.Text =
(objResult.Properties("employeeNumber")(0))
Next
'Me.txtName.Text = " "
'Me.txtName.Text = Me.lbBox.SelectedItem(("Name"(1)))
End Sub
Private Sub lbBox_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles lbBox.SelectedIndexChanged
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button2_MouseDoubleClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles Button2.MouseDoubleClick
End Sub
Private Sub txtDomain_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles txtDomain.TextChanged
End Sub
Private Sub txtMail_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles txtMail.TextChanged
End Sub
Private Sub cmdUpdate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdUpdate.Click
End Sub
Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click
Dim objSearch As New DirectorySearcher()
Dim txtSearch As New TextBox
Dim lblListbox As New Label
Me.lblListbox.Text = "Service Accounts:"
Me.lbBox.Items.Clear()
objSearch.SearchRoot = New DirectoryEntry(Me.txtDomain.Text)
objSearch.Filter =
"(&(objectCategory=person)(objectClass=user)(userA ccountControl:1.2.840.113556.1.4.803:=2)(employeeI D=Service*)(!employeeNumber=temp))"
objSearch.SearchScope = SearchScope.Subtree
objSearch.PropertiesToLoad.Add("cn")
Dim colQueryResults As SearchResultCollection
colQueryResults = objSearch.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
Me.lbBox.Items.Add(objResult.Properties("cn")(0))
Next
End Sub
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
Me.Close()
End Sub
Private Sub ActiveUsersToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ActiveUsersToolStripMenuItem.Click
Dim objSearch As New DirectorySearcher()
Dim txtSearch As New TextBox
Dim lblListbox As New Label
Me.lblListbox.Text = "Active Users:"
Me.lbBox.Items.Clear()
objSearch.SearchRoot = New DirectoryEntry(Me.txtDomain.Text)
objSearch.Filter =
"(&(objectCategory=person)(objectClass=user)(!user AccountControl:1.2.840.113556.1.4.803:=2))"
objSearch.SearchScope = SearchScope.Subtree
objSearch.PropertiesToLoad.Add("cn")
Dim colQueryResults As SearchResultCollection
colQueryResults = objSearch.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
Me.lbBox.Items.Add(objResult.Properties("cn")(0))
Next
End Sub
Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles txtSearch.TextChanged
End Sub
Private Sub cmdSearch_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdSearch2.Click
Me.lbBox.Items.Clear()
Me.lblListbox.Text = "Search Results:"
Dim objParent As New DirectorySearcher(Me.txtDomain.Text)
Dim txtSearch As New TextBox
If Me.txtSearch.Text = "" Then
MsgBox("Give me something to search")
End
End If
objParent.Filter = "(&(objectCategory=user)(userPrincipalName=" +
Me.txtSearch.Text + "*))"
objParent.PropertiesToLoad.Add("cn")
objParent.PropertiesToLoad.Add("employeeID")
objParent.PropertiesToLoad.Add("employeeNumber")
objParent.PropertiesToLoad.Add("mail")
Dim colQueryResults As SearchResultCollection
colQueryResults = objParent.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
If objResult.Properties("cn")(0) = "" Then
Me.lbBox.Items.Add("no record found")
End If
Me.lbBox.Items.Add(objResult.Properties("cn")(0))
'Me.lbBox.Items.Add(objResult.Properties("employee ID")(0))
Next
End Sub
Private Sub DisabledUsersToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
DisabledUsersToolStripMenuItem.Click
Dim objSearch As New DirectorySearcher()
Dim lbBox As New ListBox
Dim lblListbox As New Label
Dim txtDomain As New TextBox
Me.lblListbox.Text = "Dislabled Users: "
Me.lbBox.Items.Clear()
objSearch.SearchRoot = New DirectoryEntry(Me.txtDomain.Text)
objSearch.Filter =
"(&(objectCategory=person)(objectClass=user)(userA ccountControl:1.2.840.113556.1.4.803:=2))"
objSearch.SearchScope = SearchScope.Subtree
objSearch.PropertiesToLoad.Add("cn")
Dim colQueryResults As SearchResultCollection
colQueryResults = objSearch.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
Me.lbBox.Items.Add(objResult.Properties("cn")(0))
'Console.WriteLine(objResult.Properties("cn")(0))
Next
End Sub
Private Sub EnabledToolStripMenuItem1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
EnabledToolStripMenuItem1.Click
Dim objSearch As New DirectorySearcher()
Dim txtSearch As New TextBox
Dim lblListbox As New Label
Me.lblListbox.Text = "Service Accounts:"
Me.lbBox.Items.Clear()
objSearch.SearchRoot = New DirectoryEntry(Me.txtDomain.Text)
objSearch.Filter =
"(&(objectCategory=person)(objectClass=user)(!user AccountControl:1.2.840.113556.1.4.803:=2)(employee ID=Service*)(!employeeNumber=temp))"
objSearch.SearchScope = SearchScope.Subtree
objSearch.PropertiesToLoad.Add("cn")
Dim colQueryResults As SearchResultCollection
colQueryResults = objSearch.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
Me.lbBox.Items.Add(objResult.Properties("cn")(0))
Next
End Sub
End Class
"Hashim Ismail" wrote:
Hi;
I am quering Active Directory and putting the results of users in the
listbox. Then the user can click on the listbox which should populate
the
textboxes with the fields from AD, which works fine as long as each
field has
a value but i get Index was out of range when one of the fields is
blank. I
am posting sample of the code here:
Dim lbBox As New ListBox
Dim txtName, txtMail, txtEmployeeID, txtEmployeeNo As New
TextBox
Dim objParent As New DirectorySearcher(Me.txtDomain.Text)
'Me.txtName.Text = " "
Dim cmdEdit As New Button
If Me.lbBox.SelectedItem = "" Then
MsgBox("Make a selection")
End If
objParent.Filter = "(&(objectCategory=user)(Name=" +
Me.lbBox.SelectedItem + "*))"
objParent.PropertiesToLoad.Add("cn")
objParent.PropertiesToLoad.Add("employeeID")
objParent.PropertiesToLoad.Add("employeeNumber")
objParent.PropertiesToLoad.Add("mail")
Dim colQueryResults As SearchResultCollection
colQueryResults = objParent.FindAll()
Dim objResult As SearchResult
For Each objResult In colQueryResults
'Me.lbBox.Items.Add(objResult.Properties("cn")(0))
'Me.lbBox.Items.Add(objResult.Properties("employee ID")(0))
Me.txtName.Text = (objResult.Properties("cn")(0))
Me.txtMail.Text = (objResult.Properties("mail")(0))
Me.txtEmployeeID.Text =
(objResult.Properties("employeeID")(0))
Me.txtEmployeeNo.Text =
(objResult.Properties("employeeNumber")(0))
Next
*** Sent via Developersdex http://www.developersdex.com ***