2010-04-08 74 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"))