2010-04-08 76 views
1

我在VBScript上丟失了我的頭髮。我可以如何傳遞一個引用作爲函數的返回值?從VBScript中的函數返回引用

目前我的代碼看起來是這樣的:

Set objUser = FindUser("bendert") 

REM Searches Directory for the User 
Function FindUser(UserLoginName) 
    Wscript.Echo "Querying AD to retrieve user-data" 

Set objConnection = CreateObject("ADODB.Connection") 
objConnection.Open "Provider=ADsDSOObject;" 

Set objCommand = CreateObject("ADODB.Command") 
objCommand.ActiveConnection = objConnection 

'Get user Using LDAP/ADO. There is an easier way 
'to bind to a user object using the WinNT provider, 
'but this way is a better for educational purposes 
Set oRoot = GetObject("LDAP://rootDSE") 
'work in the default domain 
sDomain = oRoot.Get("defaultNamingContext") 
Set oDomain = GetObject("LDAP://" & sDomain) 
sBase = "<" & oDomain.ADsPath & ">" 
'Only get data for login name requested 
sFilter = "(&(sAMAccountName="& UserLoginName &")(objectClass=user))" 
sAttribs = "adsPath" 
sDepth = "subTree" 

sQuery = sBase & ";" & sFilter & ";" & sAttribs & ";" & sDepth 
WScript.Echo "LDAP Query is:" & sQuery &"" 

objCommand.CommandText=sQuery 
Set objRecordSet = objCommand.Execute 

FindUser = GetObject(objRecordSet.Fields("adspath")) 
WScript.Echo "You E-Mail Address is: " & objUser.EmailAddress 
objConnection.Close  
End Function 

Unfortunatley上的VBScript,我進行分配的函數的返回值行拋出一個錯誤。

FindUser = GetObject(objRecordSet.Fields("adspath")) 

該錯誤看起來像「參數的錯誤數量或無效的屬性分配」。

我在做什麼錯?

回答

3

看起來像你需要:

Set FindUser = GetObject(objRecordSet.Fields("adspath"))