If Open(3,'userdata.csv')
@SERROR ' - while opening userdata.csv')
Else
$aRecord = CSV(ReadLine(3)) ; read the CSV record, convert to array
While Not @ERROR
If CreateUserAccount($aRecord)
'Failed to create user account' ?
@SERROR ?
EndIf
$aRecord = CSV(ReadLine(3))
Loop
$ = Close(3)
EndIf
Function CreateUserAccount($aUserData)
Dim $aDom, $part, $sDNdom, $LDAPpath, $oContainer, $oUser
Dim $Domain, $ContainerDN, $Account, $FirstName, $MiddleInitial, $LastName, $Description, $Office, $Telephone, $Email, $WebPage, $userPrincipalName
$Domain = $aUserData[0]
$ContainerDN = $aUserData[1]
$Account = $aUserData[2]
$FirstName = $aUserData[3]
$MiddleInitial = $aUserData[4]
$LastName = $aUserData[5]
$Description = $aUserData[6]
$Office = $aUserData[7]
$Telephone = $aUserData[8]
$Email = $aUserData[9]
$WebPage = $aUserData[10]
$userPrincipalName= $aUserData[11]
if VarTypeName($userPrincipalName) = "Empty"
$userPrincipalName = $Account + "@@" + $Domain
endif
$aDom = split($Domain,".")
for each $part in $aDom
$sDNdom = "" + $sDNdom + ",dc=" + $part
next
$LDAPpath = "LDAP://" + $Domain + "/" + $ContainerDN + $sDNdom
;? $LDAPpath
$oContainer = GetObject($LDAPpath)
if @error
? "GetObject Error: " + @error + " " + @Serror
endif
$oUser = $oContainer.Create("User", "cn=" + $Account)
if @error
? "Create Error: " + @error + " " + @Serror
endif
$oUser.Put("sAMAccountName", $Account)
$oUser.Put("givenName", $FirstName) ;First Name
$oUser.Put("Initials", $MiddleInitial) ;Initials
$oUser.Put("sn", $LastName) ;Last Name(Surname)
$oUser.Put("displayName",$LastName + iif($LastName, ", ","") +
$FirstName + iif($MiddleInitial, " ", "") +
$MiddleInitial) ;Display name
$oUser.Put("description", $Description) ;Description
$oUser.Put("physicalDeliveryOfficeName",$Office) ;Office
$oUser.Put("telephoneNumber",$Telephone);Telephone
$oUser.Put("mail",$Email) ;E-mail
$oUser.Put("wWWHomePage",$WebPage) ;Web page
$oUser.Put("userPrincipalName", $userPrincipalName) ;userPrincipalName
$oUser.SetInfo
$CreateUserAccount = Not @ERROR
Exit @ERROR
Endfunction