You will be getting into some hairy and complicated stuff if you are looking to tie in a properly designed web solution for admin functions. My personal feeling on it is it is not worth all the effort when you can give your help desk a custom MMC snap in and let them take things from their. just make sure you install the support tools on thier workstations first.
Anyway, here is a script that will read from Excel and populate data into AD to create a user ID.
Make sure you check the whole script and edit for your companies LDAP paths. If you are unsure about the full LDAP path for your server, install ADSIEdit from the Win2K CD. It is part of the support tools in the support directory. ADSIEdit is an MMC Snap-In and it can show you your LDAP Path.
This script will set the initial password to be the same as the login.
'==========================================================================
'
' NAME: createNewUsers.vbs
'
' AUTHOR: Mark D. MacLachlan , The Spider's Parlor
' DATE : 04/21/2003
' COPYRIGHT 2003, All Rights Reserved
'
' COMMENT:
' Creates users based on Excel spreadsheet information.
' Excel spreadsheet formatting:
' Row 1 to have headings
' Column A (1) to have login
' Column B (2) to have first_name
' Column C (3) to have last_name
' Column D (4) to have phone
' Column E (5) to have extension
' Column F (6) to have fax
' Column G (7) to have email
' Column H (8) to have street
' Column I (9) to have suite
' Column J (10) to have city
' Column K (11) to have state
' Column L (12) to have zip
'=====================================
set x = getobject(,"excel.application"

r = 2
Const c = "US"
Const co = "UNITED STATES"
Const company = "Company Name"
Const ou_name = "Users"
do until len(x.cells(r, 1).value) = 0
login = x.cells(r, 1).value
first_name = x.cells(r, 2).value
last_name = x.cells(r, 3).value
phone = x.cells(r, 4).value
extension = x.cells(r, 5).value
fax = x.cells(r, 6).value
email = x.cells(r, 7).value
street = x.cells(r, 8).value
suite = x.cells(r, 9).value
city = x.cells(r, 10).value
state = x.cells(r, 11).value
zip =cstr(x.cells(r, 12).value)
if len(first_name) = 0 then
first_name = " "
fn=0
end if
if len(last_name) = 0 then
last_name = " "
ln=0
end if
if len(phone) = 0 then
phone = " "
end if
if len(extension) = 0 then
extension = " "
end if
if len(fax) = 0 then
extension = " "
end if
if len(email) = 0 then
email = " "
end if
if len(street) = 0 then
street = " "
end if
if len(suite) = 0 then
suite = " "
end if
if len(city) = 0 then
city = " "
end if
if len(state) = 0 then
state = " "
end if
if len(zip) = 0 then
zip = " "
end if
set o = getobject("LDAP://SERVER.company.com.local/CN=Users,DC=company,DC=com,DC=local"
if err then
x.cells(r, 15).value = err.number & ": " & err.description
err.Clear
end if
if fn + ln = 0 then
fullName = x.cells(r, 1).value
else
fullName = first_name & " " & last_name
end if
Set oUser = o.Create("user","CN=" & fullName)
oUser.Put "sAMAccountName", login
oUser.SetInfo
oUser.Put "userPrincipalName", email
oUser.SetInfo
oUser.Put "c", c
oUser.Put "co", co
oUser.Put "company", company
oUser.Put "displayName", first_name & " " & last_name
oUser.Put "facsimileTelephoneNumber", fax
oUser.Put "givenName", first_name
oUser.SetInfo
oUser.Put "l", "Phoenix"
oUser.Put "mail", email
oUser.Put "mailNickname", login
'oUser.Put "name", first_name & " " & last_name
oUser.Put "otherTelephone", "Ext. "& extension
oUser.Put "postalCode", zip
oUser.SetInfo
oUser.Put "sn", last_name
oUser.Put "st", state
oUser.Put "streetAddress", street & vbCrLf & Suite
oUser.Put "telephoneNumber", phone & "Ext. "& extension
oUser.SetPassword login
oUser.SetInfo
oUser.AccountDisabled = False
oUser.SetInfo
If Err.Number <> 0 And Err.Number <> -2147019886 Then
x.cells(r, 15).value = err.number & ": " & "ID creation error"
Else
x.cells(r, 15).value = "created"
end if
r = r + 1
set objOU = Nothing
set oUser = Nothing
set o = nothing
Err.Clear
Loop
set x = nothing
msgbox "done"