Thursday, 17 October 2013

Create Bulk AD users from CSV file using VBScript

Description

    This article contains the VBScript code to Create Bulk Active Directory users from CSV file and also contain the VBScript code to create Bulk AD Users from CSV file with dynamic file path input.

Related Article: Powershell Script to Create Bulk AD Users from CSV

Summary

  1. Create Bulk AD users from CSV file using VB Script.
  2. Create Bulk AD users from CSV file using VB Script with Dynamic file path.

Create Bulk AD users from CSV File using VB Script

1. Copy the below example VBScript code and paste it in notepad or a VBScript editor.
2. Save the file with a .vbs extension, for example: CreateBulkADUsers.vbs
3. Change the CSV file path C:\Users\Administrator\Desktop\NewUsers.csv with your own file path.
4. Change the domain name workdomain.local to your own domain name.

Note:Your CSV file should contain the columns samAccount, givenName and sn as first three columns

Create Bulk Active Directory users from CSV File in VB Script

5. Double-click the vb script file (or Run this file from command window) to create Bulk Active Directory users from CSV file.

Click to get VBScript source code as file Download CreateBulkADUsersFromCSVFile.vbs 
' CreateBulkADUsersFromCSVFile.vbs
' Sample VBScript to create a AD Users from CSV file .
' Author: http://www.morgantechspace.com/
' ------------------------------------------------------' 
Option Explicit 
 
' Variables needed for LDAP connection 
Dim objRootLDAP 
Dim objContainer 

' Variables needed for CSV File Information
Dim varFileName
Dim objFSO
Dim objFile

' Holding variables for user information import from CSV file 
Dim varSamAccountName,varFirstName,varLastName
Dim newUserFields 

Dim objNewUser 
Dim varDomain 

Const ForReading = 1
 
' Modify this name to match your company's AD domain 
varDomain="workdomain.local" 
 
' Create a connection to the Active Directory Users container. 
Set objRootLDAP = GetObject("LDAP://rootDSE") 

' You can give your own OU like LDAP://OU=TestOU instead of LDAP://cn=Users
Set objContainer = GetObject("LDAP://cn=Users," & objRootLDAP.Get("defaultNamingContext")) 

' Specify the csv file full path.
varFileName = "C:\Users\Administrator\Desktop\NewUsers.csv"

' Open the file for reading.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(varFileName, ForReading)

' Read the first line - csv columns -not needed for our proceess
objFile.ReadLine

' Skip the error while creating new user...(i.e- user already exists)
on error resume next

' Read the file and create new user.
Do Until objFile.AtEndOfStream
    ' Splits prioperty values.
    newUserFields = Split(objFile.ReadLine,",")
    varSamAccountName = newUserFields(0)
    varFirstName = newUserFields(1) 
    varLastName = newUserFields(2) 
 
' Create new User account 
Set objNewUser = objContainer.Create("User","cn="&varFirstName&" "&varLastName) 
 
objNewUser.put "sAMAccountName",lcase(varSamAccountName) 
objNewUser.put "givenName",varFirstName 
objNewUser.put "sn",varLastName 
objNewUser.put "UserPrincipalName",lcase(varSamAccountName)&"@"&varDomain 
objNewUser.put "DisplayName",varFirstName&" "&varLastName 
objNewUser.put "name",lcase(varSamAccountName) 
objNewUser.put "description","This user was created from csv file using vbscript"
 
objNewUser.SetInfo 
objNewUser.Put "pwdLastSet", 0 

' Enable the user account 
objNewUser.AccountDisabled = FALSE
objNewUser.SetInfo 
Loop

MsgBox("Active Directory users created successfully from CSV file using VBScript.")

WScript.Quit  

Create Bulk AD users from CSV File using VB Script with Dynamic File Path

1. Copy the below example VBScript code and paste it in notepad or a VBScript editor.
2. Save the file with a .vbs extension, for example: CreateBulkADUsersFromCSV_DynamicFilePath.vbs
3. Change the domain name workdomain.local to your own domain name.

Click to get VBScript as a file  Download CreateBulkADUsersFromCSV_DynamicFilePath.vbs
' CreateBulkADUsersFromCSV_DynamicFilePath.vbs
' Sample VBScript to create a AD Users from CSV file .
' Author: http://www.morgantechspace.com/
' ------------------------------------------------------' 
Option Explicit 
 
' Variables needed for LDAP connection 
Dim objRootLDAP 
Dim objContainer 

' Variables needed for CSV File Information
Dim varFileName
Dim objFSO
Dim objFile

' Holding variables for user information import from CSV file 
Dim varSamAccountName,varFirstName,varLastName
Dim newUserFields 

Dim objNewUser 
Dim varDomain 

Const ForReading = 1
 
' Modify this name to match your company's AD domain 
varDomain="workdomain.in" 
 
' Create a connection to the Active Directory Users container. 
Set objRootLDAP = GetObject("LDAP://rootDSE") 

' You can give your own OU like LDAP://OU=TestOU instead of LDAP://cn=Users
Set objContainer = GetObject("LDAP://cn=Users," & objRootLDAP.Get("defaultNamingContext")) 


' Asks CSV file path from user.
Do
   varFileName = InputBox ("Please enter CSV file full path")
   If varFileName = "" then
      Msgbox "No user name entered"
   end if
Loop Until varFileName <> ""

' Open the file for reading.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(varFileName, ForReading)

' Read the first line - csv columns -not needed for our proceess
objFile.ReadLine

' Skip the error while creating new user...(i.e- user already exists)
on error resume next

' Read the file and create new user.
Do Until objFile.AtEndOfStream
    ' Splits prioperty values.
    newUserFields = Split(objFile.ReadLine,",")
    varSamAccountName = newUserFields(0)
    varFirstName = newUserFields(1) 
    varLastName = newUserFields(2) 

 
' Create new User account 
Set objNewUser = objContainer.Create("User","cn="&varFirstName&" "&varLastName) 
 
objNewUser.put "sAMAccountName",lcase(varSamAccountName) 
objNewUser.put "givenName",varFirstName 
objNewUser.put "sn",varLastName 
objNewUser.put "UserPrincipalName",lcase(varSamAccountName)&"@"&varDomain 
objNewUser.put "DisplayName",varFirstName&" "&varLastName 
objNewUser.put "name",lcase(varSamAccountName) 
objNewUser.put "description","This user was created from csv file using vbscript"
 
objNewUser.SetInfo 
objNewUser.Put "pwdLastSet", 0 

' Enable the user account 
objNewUser.AccountDisabled = FALSE
objNewUser.SetInfo 
Loop

MsgBox("Active Directory users created successfully from CSV file using VBScript.")

WScript.Quit  
4. Double-click the vb script file (or Run this file from command window) to create Bulk Active Directory users from CSV file.

5. Enter the CSV file path which contains new users information to create.

Create Bulk AD users from CSV file

6.
Click OK to proceed. Now Bulk AD Users created successfully from CSV file using VBScript. you can check new users through ADUC console.

Advertisements
Advertisements

No comments:

Post a Comment