إضغط لتفاصيل الإعلانات



Results 1 to 1 of 1
Share
  1. #1
    Join Date
    Nov 2007
    Location
    Arab world!
    Posts
    6,169
    Blog Entries
    4
    Rep Power
    10

    Arrow Scripts to Create users at Active directory from CSV file and create their Mailboxes on Exchange server 2010



    When you are deploying a new infrastructure and the company request to create about 300 users it's very difficult and time consuming to create all of them by using GUI but now we are learing you how to create any number of users with a few commands and a sheets that you already prepare them before visiting the site for deployment process.
    It's very simple to do, Just write down the required users on a file like below:


    Copy the below stream onto a txt file and rename the extension onto .CSV as "LabUsers.csv"
    Code:
    GivenName,Surname,samAccountName,DisplayName,Password
    Mohamed,Fouad,Mohamed.Fouad,Mohamed Fouad,EgyEng.comPassword1
    Mohamed,Taha,Mohamed.Taha,Mohamed Taha,EgyEng.comPassword1
    Mohamed,Hassan,Mohamed.Hassan,Mohamed Hassan,EgyEng.comPassword1
    Mohamed,Ahmed,Mohamed.Ahmed,Mohamed Ahmed,EgyEng.comPassword1
    Mohamed,Ali,Mohamed.Ali,Mohamed Ali,EgyEng.comPassword1
    Mohamed,Emad,Mohamed.Emad,Mohamed Emad,EgyEng.comPassword1
    after completing the users list then you need the script to run for creating the users.
    You can create a new Organization Unit (OU) which named ExchangeUsers
    and after running the script you can move the users easily to desired OUs.


    Just copy the below stream onto a txt file and rename the extension to .ps1

    Code:
    # Powershell Script which creates users from a sample CSV File into Active Directory
    # Version 1.0
    # Author: Mohamed Fouad
    # http://www.EgyEng.com
    # 
    # Compatible with:
    # Powershell 1.0 and 2.0
    # Windows 2003
    # Windows 2008
    # Windows 2008 R2
    #
    
    function Select-FileDialog 
    {
        param([string]$Title,[string]$Directory,[string]$Filter="CSV Files (*.csv)|*.csv")
        [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
        $objForm = New-Object System.Windows.Forms.OpenFileDialog
        $objForm.InitialDirectory = $Directory
        $objForm.Filter = $Filter
        $objForm.Title = $Title
        $objForm.ShowHelp = $true
        
        $Show = $objForm.ShowDialog()
        
        If ($Show -eq "OK")
        {
            Return $objForm.FileName
        }
        Else
        {
            Exit
        }
    }
    
    $FileName = Select-FileDialog -Title "Import an CSV file" -Directory "c:\"
    
    $ExchangeUsersOU = "OU=ExchangeUsers"
    
    $domain = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()
    $DomainDN = (([System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()).Domains | ? {$_.Name -eq $domain}).GetDirectoryEntry().distinguishedName
    $final = "LDAP://$DomainDN"
    $DomainPath = [ADSI]"$final"
    $cOU = $DomainPath.Create("OrganizationalUnit",$ExchangeUsersOU)
    $cOU.SetInfo()
    
    $UserInformation = Import-Csv $FileName
    
    $OUPath = "LDAP://$ExchangeUsersOU,$DomainDN"
    $UserPath = [ADSI]"$OUPath"
    Write-Host "---------------------------------------------------------------"
    Write-Host "Creating LAB Users"
    Write-Host ""
    Write-Host "---------------------------------------------------------------"
    
    Foreach ($User in $UserInformation){
        
        $CN = $User.samAccountName
        $SN = $User.Surname
        $Given = $User.givenName
        $samAccountName = $User.samAccountName
        $Display = $User.DisplayName
        
        $LABUser = $UserPath.Create("User","CN=$CN")
        Write-Host "Creating User: $User.samAccountName"
        $LABUser.Put("samAccountName",$samAccountName)
        $LABUser.Put("sn",$SN)
        $LABUser.Put("givenName",$Given)
        $LABUser.Put("displayName",$Display)
        $LABUser.Put("mail","$samAccountName@$domain")
        $LABUser.Put("description", "Lab User - created via Script From Egypt Engineers-EgyEng.com")
        $LABUser.Put("userPrincipalName","$samAccountName@$domain")
        $LABUser.SetInfo()
        
        $Pwrd = $User.Password
        
        $LABUser.psbase.invoke("setPassword",$Pwrd)
        $LABUser.psbase.invokeSet("AccountDisabled",$False)
        $LABUser.psbase.CommitChanges()
    
    }
    Write-Host "Script Completed"
    Now open the windows powershell and point to the location for the ps1 file and open it, it will ask you to open the "LabUsers.csv".
    Open it and give it a time to complete in a minute.

    Check the OU and you will find the created users in place.

    Now, you want to create the mailboxes for these users in Exchange 2010.
    So it's a very simple command to be run at your exchange Management shell after elevation.

    One step remaining before doing your command is to create a new database on the exchange server with a name as example "EgyEng.comDB"

    THEN you are ready for the command as below:

    Code:
    [PS] C:\Documents and Settings\EgyEngadmin>Get-User -OrganizationalUnit ExchangeUsers | Where-Object {$_.RecipientType -eq "user"} | Enable-Mailbox -Dat
    abase "EgyEng.comDB"
    Great, now you create domain users and their exchange mailboxes in two minutes!.

    Note: This applies to Windows 2003,2008 , Exchange 2007, 2010.

    have a nice Day!
    Egypt Engineers
    EgyEng.com.
    Last edited by Mohamed Fouad; 03-10-2010 at 04:29 PM.


  2. Facebook Comments - تعليقـك على الفيس بوك يسعدنا ويطور مجهوداتنـا


  3. Forum Ads:

  4. Forum Ads:

    اضفط هنا لمعرفة تفاصيل الإعلانات بالموقع


  5. Forum Ads:

    -->

Similar Threads

  1. Replies: 0
    Last Post: 10-01-2011, 04:28 PM
  2. Replies: 4
    Last Post: 13-07-2010, 11:40 PM
  3. Replies: 1
    Last Post: 13-07-2010, 08:38 PM
  4. Replies: 5
    Last Post: 30-01-2010, 03:45 PM
  5. How to Backup Windows Server 2003 Active Directory?
    By ah_khairy in forum Microsoft
    Replies: 2
    Last Post: 06-02-2008, 03:09 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

أقسام المنتدى

الروابط النصية

تابع جروبنا على الفيس بوك

صفحة Egypt Engineers على الفيس بوك

تابعنا على linkedin

جروبنا على الياهو جروب