Wednesday, September 10, 2008

Exchange 2007 bulk import

Here is my script to create new users and mailboxes from a csv file containing FirstName,LastName,Alias,Displayname,Password.

Other account properties such as homefolder, group membership, roaming profile etc were set with ADmodify.net.

Homefolders were created and shared with a script.

Save the following as import.ps1 and call from powershell.

## My Import Script 01/09/2008
## Section 1
## Define Database for new mailboxes
$db="exchangeserver\database"

## Define User Principal name
$upndom="mydomain.local"

## Define OU for new users
$ou="mydomain.LOCAL/ou/ou etc"

## Define CSV File with user information
$csvFile="my csv.csv"

## Section 2
## Import csv file into variable $users
$users = import-csv $csvFile

## Section 3
## Function to convert Password string to secure string
function SecurePassword([string]$plainPassword)
{
$secPassword = new-object System.Security.SecureString

Foreach($char in $plainPassword.ToCharArray())
{
$secPassword.AppendChar($char)
}

$secPassword
}

## Section 4
## Create new mailboxes and users
foreach ($i in $users)
{
$sp = SecurePassword $i.password
$upn = $i.Alias + "@" + $upndom
$display = $i.Displayname
New-Mailbox -Password $sp -Database $db -UserPrincipalName $upn -Name $i.Alias -FirstName $i.Firstname -LastName $i.Lastname -SamAccountName $i.alias -DisplayName $display -Alias $i.Alias -OrganizationalUnit $OU
}

No comments: