I haven’t figured out how to get proper resultcodes or errorhandling from the “Import-Mailbox” command, but you can use your transcript file for that. See my other post for that.
You’ll need some global vars, e.g.:
$your_import_file="c:\import\import.csv" $folder_with_psts="C:\exmerge\primary database export files"
Then it’s as simple as this:
function import_mailboxes() { $UserDetails=Import-Csv -delimiter ";" $your_import_file $count=0 $found=0 $notfound=0 foreach($UD in $UserDetails) { $count++ $username=$UD.Code.ToLower() $full_path_to_pst=$folder_with_psts + $username + ".pst" $FileExists = Test-Path $full_path_to_pst if ($FileExists) { write-host "$count - $username - Ready to import ($full_path_to_pst)" -ForegroundColor Green $found++ Import-Mailbox -Identity $username -PSTFolderPath $folder_with_psts } else { write-host "$count - $username - No matching pst file found!" -ForegroundColor Red $notfound++ } } write-host "Summary: Found (and hopefully successfully imported): $found, Not Found: $notfound" }