推送到活动目录失败,没有错误

时间:2015-05-28 13:53:42

标签: asp-classic active-directory

如果我之前发布了此消息,我很抱歉,但我正在努力使用此脚本将数据推送到Active Directory。以下代码有效,即它不会产生任何错误,但它不会更新目录。我有以下代码:

<%@ Language=VBScript  %>
<% response.Buffer = True
'Define the AD OU that contains our users
dim ADUser, user, firstname, lastname, email, telephonenumber, mobile,  description
'This initializes all of our variables
user = request.querystring("account_name")
'This puts the value of the account_name into a variable
if len(user) = 0 then

'If the length of the username is equal to 0
              response.write "Please supply a username in the query string" 
elseif len(user) > 0 then

 'Else is length of user is greater than 0

 ADUser = "LDAP://OU=RBC Staff,OU=RBC Users,DC=rugby,DC=internal"
' Make AD connection and run query

Set objCon = Server.CreateObject("ADODB.Connection")
objCon.provider ="ADsDSOObject"
objCon.Properties("User ID") = "EXAMPLE\User"
objCon.Properties("Password") = "Password01"
objCon.Properties("Encrypt Password") = TRUE
objCon.open "Active Directory Provider"
Set objCom = CreateObject("ADODB.Command")
Set objCom.ActiveConnection = objCon
objCom.CommandText ="select givenName,sn,mail,telephonenumber,mobile,description, sAMAccountName, cn FROM '"+ ADUser +"' where sAMAccountname='"& user &"'"
Set objRS = objCom.Execute

If IsNull(objRS.Fields("Description").Value) Then
       sDesc = ""
else
     For Each item In objRS.Fields("description").Value
          sDesc = item 
      Next
  end if
if isNull(objRS("givenName")) then  
        firstname = ""  
   else 
      firstname = objRS("givenName") 
  end if        

     if isNull(objRS("sn")) then
             lastname = ""  
      else

       lastname = objRS("sn") 
     end if     
       if isNull(objRS("mail")) then
             email = ""
       else
          email = objRS("mail") 
  end if    

  if isNull(objRS("telephonenumber")) then
    telephonenumber = ""
 else
    telephonenumber =   objRS("telephonenumber")
end if 
   if isNull(objRS("mobile")) then
        mobile = ""
   else
      mobile = objRS("mobile")
 end if 

 Response.Write "<form action='editentry.asp?account_name=" & user &"' method='POST'>"
   Response.Write "<table>"
     Response.Write "<tr>"
    Response.Write "<td><label for='firstname'>Firstname</label></td>"
     Response.Write "<td><input type='text' id='firstname' value='" + firstname + "' name='firstname'></td>"
          Response.Write "</tr>"
        Response.Write "<tr>"
   Response.Write "<td><label for='lastname'>Lastname</label></td>"
    Response.Write "<td><input type='text' id='lastname' value='" & lastname & "' name='lastname'></td>"
     Response.Write "</tr>"
   Response.Write "<tr>"
    Response.Write "<td><label for='email'>E-Mail Address</label></td>"
      Response.Write "<td><input type='email' id='email' value='" + email + "' name='email'></td>"
        Response.Write "</tr>"
     Response.Write "<tr>"
 Response.Write "<td><label for='description'>Description</label></td>"
   Response.Write "<td><input type='text' id='description' value='" + sDesc + "' name='description'></td>"
  Response.Write "</tr>"
  Response.Write "<tr>"
Response.Write "<td><label for='mobile'>Mobile</label></td>"
Response.Write "<td><input type='text' name='mobile' value='" + mobile + "' id='mobile'></td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td><label for='telephonenumber'>Telephone Number</label></td>"
Response.Write "<td><input type='text' id='telephonenumber' value='" + telephonenumber + "' name='telephonenumber'></td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td><input type='hidden' name='subval' value='1'></td>"
Response.Write "<td><input type='submit' name='submit''></td>"
Response.Write "</tr>" + vbCrLf
Response.Write "</table>"
Response.Write "</form>"

if request.form("subval")=1 then    
'If the subval field equals 1, we know the form has been submitted OK       
firstname = request.form("firstname")    
lastname = request.form("lastname")  
email = request.form("email")
telephonenumber = request.form("telephonenumber")
mobile = request.form("mobile")

    Set update = CreateObject("ADODB.Command")
   Set update.ActiveConnection = objCon
   update.CommandText ="select ADsPath, givenName,sn,mail,telephonenumber,mobile,sAMAccountName FROM '"+ ADUser +"' where sAMAccountname='"& user & "'"
    Set update.ActiveConnection = objCon
   update.Properties("searchscope") = ADS_SCOPE_ONELEVEL
    set writeLDAP = update.Execute

  Do While Not writeLDAP.EOF

       Set usr = GetObject(writeLDAP.Fields("ADsPath").Value)
       usr.Put "gjvenName", firstname
      usr.Put "sn", lastname
      usr.Put "mail", email
       usr.Put "mobile", mobile
      usr.Put "telephonenumber", telephonenumber
   usr.SetInfo
   writeLDAP.MoveNext
   loop

response.write "This form has been submitted"
writeLDAP.Close
end if
end if

&#39;清理     objRS.Close     objCon.Close     设置objRS = Nothing     设置objCom = Nothing     %GT;]

我唯一能想到的是,我使用的登录信息不是域管理员帐户。

0 个答案:

没有答案