Solved

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

Posted on 2010-08-29
2
1,274 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
ID: 33555608
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
ID: 33589254
short and sweet!
Thanks
0

Featured Post

Zoho SalesIQ

Hassle-free live chat software re-imagined for business growth. 2 users, always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Marketers need statistics and metrics like everybody else needs oxygen. In this article we explain how to enable marketing campaign statistics for Microsoft Exchange mail.
Learn to move / copy / export exchange contacts to iPhone without using any software. Also see the issues in configuration of exchange with iPhone to migrate contacts.
In this video we show how to create a Resource Mailbox in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: Navigate to the Recipients >> Resources tab.: "Recipients" is our default selection …
This tutorial will walk an individual through the process of configuring their Windows Server 2012 domain controller to synchronize its time with a trusted, external resource. Use Google, Bing, or other preferred search engine to locate trusted NTP …

914 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

12 Experts available now in Live!

Get 1:1 Help Now