Advertisement
Advertisement
| 02.05.2008 at 02:42PM PST, ID: 23139698 |
|
[x]
Attachment Details
|
||
|
[x]
The Solution Rating System
|
||
|
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: |
Imports System
Imports System.IO
Imports System.DirectoryServices
Imports System.DirectoryServices.Protocols
Imports System.Net
Imports System.Text
Imports System.Runtime.InteropServices.COMException
Imports ADODB 'added via reference: C:\Program Files\Microsoft.NET\Primary Interop Assemblies\adodb.dll
Module modMain
Sub Main()
getADUsers_ADODB() '~10sec
getADUsers_NEW() 'long time
End Main
Function getADUsers_ADODB()
Dim arrADUsers As New ArrayList
Try
Dim oConn As New ADODB.Connection
Dim oRS As New ADODB.Recordset
Dim oComm As New ADODB.Command
'Dim strComputerName As String = Nothing
Dim strDomainName As String = "saws.org"
' set connection properties
With oConn
.Provider = "ADsDSOObject"
.Open("Active Directory Provider")
End With
' set command properties
With oComm
.ActiveConnection = oConn
.CommandText = "<LDAP://DC=domain,DC=org>;(&(ObjectClass=user)(!ObjectClass=computer)(!description=Built-in*));sAMAccountName,employeeID,telephoneNumber,mail,distinguishedName"
End With
' open recordset
oRS = oComm.Execute
If Not oRS.EOF Then
oRS.MoveFirst()
Do Until oRS.EOF
Dim arrADUser As New ArrayList
If Not oRS.Fields(0).Value.ToString = "" Then
arrADUser.Add(oRS.Fields(0).Value)
If Not oRS.Fields(1).Value.ToString = "" Then
arrADUser.Add(oRS.Fields(1).Value)
Else
arrADUser.Add("null")
End If
If Not oRS.Fields(2).Value.ToString = "" Then
arrADUser.Add(oRS.Fields(2).Value)
Else
arrADUser.Add("null")
End If
If Not oRS.Fields(3).Value.ToString = "" Then
arrADUser.Add(oRS.Fields(3).Value)
Else
arrADUser.Add("null")
End If
If Not oRS.Fields(4).Value.ToString = "" Then
arrADUser.Add(oRS.Fields(4).Value)
Else
arrADUser.Add("null")
End If
End If
arrADUsers.Add(arrADUser)
oRS.MoveNext()
Loop
End If
' clean up objects
oRS.Close()
oConn.Close()
oRS = Nothing
oComm = Nothing
oConn = Nothing
Catch ex As Exception
Console.WriteLine()
Console.WriteLine(ex.Message)
Console.WriteLine()
Console.WriteLine(ex.ToString)
End Try
Return arrADUsers
End Function
Function getADUsers_NEW()
Dim arrADUsers As New ArrayList
Try
Dim de As DirectoryEntry = getDirectoryEntry()
Dim ds As New DirectorySearcher(de)
Dim filter As New StringBuilder
filter.Append("(&(objectCategory=Person)(objectClass=user))")
ds.Filter = filter.ToString
ds.SearchScope = DirectoryServices.SearchScope.Subtree
Dim results As SearchResultCollection = ds.FindAll
Console.WriteLine("User COUNT: {0}", results.Count)
Console.WriteLine()
For Each result As SearchResult In results
Dim dey As DirectoryEntry = getDirectoryEntry(result.Path)
Console.WriteLine("User : {0}", dey.Properties("sAMAccountName").Value)
Console.WriteLine("Phone : {0}", dey.Properties("telephoneNumber").Value)
Console.WriteLine()
dey.Close()
Next
de.Close()
Catch ex As Exception
Console.WriteLine()
Console.WriteLine(ex.Message)
Console.WriteLine()
Console.WriteLine(ex.ToString)
End Try
Return arrADUsers
End Function
Function getDirectoryEntry(Optional ByVal argPath As String = Nothing) As DirectoryEntry
Dim de As New DirectoryEntry
If argPath Is Nothing Then
de.Path = "LDAP://DC=domain,DC=org"
Else
de.Path = argPath
End If
de.Username = "domain\username"
de.Password = "password"
Return de
End Function
End Module
|