Solved

How to Enable-Mailbox and Set-QADuser parameters within single script?

Posted on 2010-08-29
2
1,273 Views
Last Modified: 2012-06-27
Hello experts,
I'm a powershell novice and need some guidance.  We are going to migrate 250 AD accounts from several domains, including 2003 DCs, to a new domain on 2008 servers, with Exchange 2010 mail servers. ADMT creates the new accounts just fine. I want to mailbox-enable the migrated accounts and then update the AD attributes with one script, reading the data from a csv file. The attached code works great with just the Enable-Mailbox command, or with just the Set-QADuser command. When both processes are included, if fails at Set-QADuser. I'm guessing that after Enable-Mailbox runs, the data from import csv is cleared, causing the failure when Set-QADuser tries to run.  How do I fix the code to run both processes.
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 a CSV file                          BE CAREFUL - Use the CORRECT CSV File" -Directory "c:\"



Import-Csv $FileName |

	foreach {Enable-Mailbox -Identity $_.UPN -Database $_.Database -DisplayName $_.Name -Alias $_.Alias }



ForEach-Object{

    set-qaduser -Identity $_.sAMAccountName -Email $_.Email -MobilePhone $_.MobilePhone -HomeDirectory $_.HomeDirectory	-HomeDrive $_.HomeDrive -LogonScript $_.LogonScript -UserPrincipalName "$($_.sAMAccountName)@cpa.firm" -FirstName $_.FirstName -LastName $_.LastName -DisplayName $_.Name 

	}

Open in new window

NewUserProfiles.csv
0
Comment
Question by:CraigMan
2 Comments
 
LVL 9

Accepted Solution

by:
jjoseph_x earned 500 total points
Comment Utility
Just put the Set-QADUser command in the same foreach block as the Enable-Mailbox.


Import-Csv $FileName |
	foreach {Enable-Mailbox -Identity $_.UPN -Database $_.Database -DisplayName $_.Name -Alias $_.Alias
    set-qaduser -Identity $_.sAMAccountName -Email $_.Email -MobilePhone $_.MobilePhone -HomeDirectory $_.HomeDirectory	-HomeDrive $_.HomeDrive -LogonScript $_.LogonScript -UserPrincipalName "$($_.sAMAccountName)@cpa.firm" -FirstName $_.FirstName -LastName $_.LastName -DisplayName $_.Name 
	};

Open in new window

0
 

Author Closing Comment

by:CraigMan
Comment Utility
short and sweet!
Thanks
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

ADCs have gained traction within the last decade, largely due to increased demand for legacy load balancing appliances to handle more advanced application delivery requirements and improve application performance.
This article will help you understand what HashTables are and how to use them in PowerShell.
In this video we show how to create an email address policy in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.:  First we need to log into the Exchange Admin Center. Navigate to the Mail Flow…
To show how to generate a certificate request in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.:  First we need to log into the Exchange Admin Center. Navigate to the Servers >> Certificates…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now