keybrdcowboy
IS-IT--Management
This script is pulling a username from a textfile, connecting to our Exchange 5.5 server and pulling out info from there, then is supposed to connect back to that same user in our AD. I cannot get it to bind back to that user after making the connection with Exchange. Can anyone help me out here? Thanks.
You can see all the stuff I have tried towards the end of my code... any help would be great. Thanks.
Code:
Option Explicit
Dim oConn
Dim oRS
Dim oSid
Dim strServerName, strGALEmail, strGALLastName, strGALFirstName, strGALDisplayName, strGALDescription, strGALCountry, strGALCity, strGALOffice
Dim strDomain, strGALZip, strGALState, strGALStreet, strGALTelNum, strGALTitle, strGALRank, oFSO, readFile, outFile, iUpperBound, strCount
Dim strTest, objRootDSE, objItem, strUserName
Dim strSid
Dim strQuery
Public strUser
Const ADS_SID_HEXSTRING = 1
Const ADS_SID_WINNT_PATH = 5
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set readFile = oFSO.OpenTextFile("C:\documents and settings\me\desktop\lacklandusers.txt")
Set outFile = oFSO.CreateTextFile("C:\documents and settings\me\desktop\UpdateADInfo.log", True)
Set oSid = CreateObject("ADsSid")
Set oConn = CreateObject("ADODB.Connection") 'Create an ADO Connection
oConn.Provider = "ADsDSOOBJECT" ' ADSI OLE-DB provider
oConn.Open "ADs Provider"
' Opens a textfile containg the usernames you want to pull from exchange and puts them in an array
iUpperBound = 0
While Not readFile.AtEndOfStream
ReDim Preserve arrUserNames(iUpperBound)
arrUserNames(UBound(arrUserNames)) = readFile.ReadLine
iUpperBound = iUpperBound + 1
Wend
readFile.Close
' Code that coonects to the user's GAL info and puts it into variables
For Each strUser in arrUserNames
'wscript.echo strUser
strUserName = strUser
oSid.SetAs ADS_SID_WINNT_PATH, "WinNT://mydomain/" & strUser 'Get the user account SID
strSid = oSid.GetAs(ADS_SID_HEXSTRING)
strQuery = "<LDAP://myserver>;(&(objectClass=person)(Assoc-NT-Account=" & strSid & "));" & _
"adspath,mail,sn,givenName,cn,description,co,l,physicalDeliveryOfficeName,postalCode,st,street,Telephone-Number,title," & _
"Extension-Attribute-1;subtree"
Set oRS = oConn.Execute(strQuery)
If oRS.EOF And oRS.EOF Then
outFile.Writeline "Could not locate user " & strUser & "'s information in the GAL." & " " & Date & " " & Time
Else
strGALEmail = oRS.Fields("mail")
strGALLastName = oRS.Fields("sn")
strGALFirstName = oRS.Fields("givenName")
strGALDisplayName = oRS.Fields("cn")
strGALDescription = oRS.Fields("description")
strGALCountry = oRS.Fields("co")
strGALCity = oRS.Fields("l")
strGALOffice = oRS.Fields("physicalDeliveryOfficeName")
strGALZip = oRS.Fields("postalCode")
strGALState = oRS.Fields("st")
strGALStreet = oRS.Fields("street")
strGALTelNum = oRS.Fields("Telephone-Number")
strGALTitle = oRS.Fields("title")
strGALRank = oRS.Fields("Extension-Attribute-1")
End If
Next
'wscript.echo strUserName
'strTest = ",fulldn,"
'set objRootDSE = GetObject("LDAP://RootDSE")
'set objItem = GetObject("LDAP://cn=" & strUserName & strTest & objRootDSE.Get("DefaultNamingContext"))
'wscript.echo objItem.sn
set objItem = GetObject("WinNT://mydomain/" & strUsername & ",user")
'set objItem = GetObject("WinNT://myserver/" & strUsername)
'set strCRUser = GetObject("LDAP://mydomain/" & strUserName & "")
'Set objRootDSE = GetObject("LDAP://mydomain/RootDSE")
'Set objItem = GetObject("LDAP://" & strUserName & objRootDSE.Get("defaultNamingContext"))
'Set objItem = GetObject("LDAP://cn=" & strUserName & "," & objRootDSE.Get("defaultNamingContext"))
wscript.echo objItem.get("mail")
'Set oSid = CreateObject("ADsSid") 'from ResourceKit
'oSid.SetAs ADS_SID_WINNT_PATH, "WinNT://" & strDomain & "/" & strUsername 'Get the user account SID
'strSid = oSid.GetAs(ADS_SID_HEXSTRING) 'Convert to binary string
'Clean Up
'Set oSid = Nothing
'oRS.Close
'oConn.Close
'Set oRS = Nothing
'Set oConn = Nothing
'wscript.quit