Link to home
Start Free TrialLog in
Avatar of FocIS
FocIS

asked on

Problems with migrate public folders exchange 2010 to 2013

Hello,

I am in the middle of migrating an exchange 2010 on-premises setup to an exchange 2013 on-premises setup on a different server.  Both servers are in the same domain, same physical location, and both Server 2012 R2 fully updated.

Exchange 2013 is fully updated thru cumulative update 7
Exchange 2010 is fully updated thru the latest current rollup as of 01 Dec 2014

i am logged into either server as domain\administrator

note:  i do have a full PST backup of the public folders, so if it's easier to blow it up and make a new one, that's an option (but not sure about OAB)

i have migrated the users from 2010 to 2013, re-pointed the NAT entries in the router, rekeyed the SSL and everything is working except public folders

Having seen the links at the end of my comment, i've downloaded four PS scripts which are supposedly able to export a CSV list, then use that list to import/migrate into 2013.

The problem i'm having is the exchange 2010 server doesn't want to recognize "get-publicfolder" or "get-publicfolderdatabase", so the script fails.

basic steps i'm following:
http://technet.microsoft.com/en-us/library/bb331970(v=exchg.141).aspx

running this command in EMC on the exchange 2013 server:
.\Export-PublicFolderStatistics.ps1 c:\maplist.csv exchange.domain.com

results in this error:
[12/26/2014 10:11:32 AM] Enumerating folders under NON_IPM_SUBTREE...
[b]A parameter cannot be found that matches parameter name 'Server'.[/b]
    + CategoryInfo          : InvalidArgument: (:) [Get-PublicFolder], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Get-PublicFolder
    + PSComputerName        : exch2013.domain.com

[12/26/2014 10:11:32 AM] Enumerating folders under NON_IPM_SUBTREE completed...0 folders found.
A parameter cannot be found that matches parameter name 'IncludePreExchange2010'.
    + CategoryInfo          : InvalidArgument: (:) [Get-PublicFolderDatabase], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Get-PublicFolderDatabase
    + PSComputerName        : exch2013.domain.com

[12/26/2014 10:11:33 AM] Exporting statistics for 0 folders
[12/26/2014 10:11:33 AM] Exporting folders to a CSV file

Open in new window


running it on the exchange 2010 server yields this error:

[PS] C:\PF_Migration_Scripts>.\Export-PublicFolderStatistics.ps1 c:\maplist.csv exchange.domain.com
[12/26/2014 10:32:33 AM] Enumerating folders under NON_IPM_SUBTREE...
[b]Get-PublicFolder : The term 'Get-PublicFolder' is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.[/b]
At C:\PF_Migration_Scripts\Export-PublicFolderStatistics.ps1:190 char:28
+ $nonIpmSubtreeFolderList = Get-PublicFolder "\NON_IPM_SUBTREE" -Server $PublicFo ...
+                            ~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-PublicFolder:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

[12/26/2014 10:32:34 AM] Enumerating folders under NON_IPM_SUBTREE completed...0 folders found.
[b]Get-ExchangeServer : The term 'Get-ExchangeServer' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and
try again.[/b]
At C:\PF_Migration_Scripts\Export-PublicFolderStatistics.ps1:65 char:26
+     $script:ServerInfo = Get-ExchangeServer -Identity:$PublicFolderServer;
+                          ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-ExchangeServer:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Get-PublicFolderDatabase : The term 'Get-PublicFolderDatabase' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again.
At C:\PF_Migration_Scripts\Export-PublicFolderStatistics.ps1:77 char:48
+         $script:PublicFolderDatabasesInOrg = @(Get-PublicFolderDatabase);
+                                                ~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-PublicFolderDatabase:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

[12/26/2014 10:32:34 AM] Exporting statistics for 0 folders
[12/26/2014 10:32:34 AM] Exporting folders to a CSV file

Open in new window

Avatar of NetoMeter Screencasts
NetoMeter Screencasts
Flag of United States of America image

This might happen if you are running the script in the PowerShell window, instead of using the Exchange Management Shell, which loads the required modules automatically.

What happens if you run Add-PSSnapin first:

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin
Hey FoclS,

Neto is correct. You need to run these scripts from the Exchange Management Shell. You also need to run these from the Exchange 2010 server.

See if my step by step article helps. It walks you through the entire 2010 to 2013 public folder migration process, emphasizing any common pitfalls. Lots of screenshots too! :)

https://supertekboy.com/2014/10/13/2013-public-folder-migration-made-easy/
Avatar of FocIS
FocIS

ASKER

Thanks for the replies so far

NetoMeter: i'm doing these inside the Exchange Management Shell, but running your command (even within that) says:

[PS] C:\Windows\system32>Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin
Add-PSSnapin : The Windows PowerShell snap-in 'Microsoft.Exchange.Management.PowerShell.Admin' is not installed on
this computer.

The same result if i run it within Windows PowerShell itself

Gareth - interesting as i am actually running these in EMS... tried on the 2010 server and the 2013 server... and from the 2013 server but first using connect-exchangeserver to tap into the 2010 server from there

The problem remains, when running the ./Export-PublicFolderStatistics.ps1 - feeding it a file name and 2010 server name, same failure

Any additional information i can add, i'm more than happy to.. it seems like this should be a really easy thing i'm overlooking
Looks like the script can't run Get-PublicFolder. What happens if you run Get-PublicFolder in 2010 EMS?
Avatar of FocIS

ASKER

That's what i was thinking too, because get-publicfolder on 2010 EMS results in "...is not recognized as a cmdlet..."
(really in EMS and not in PS)
Is your account a member of the Organization Management group.
Avatar of FocIS

ASKER

the account is domain\administrator, and is a member of organization management

interestingly on the 2010 server, in the EMC gui, most of the normal things are gone, presumably because we migrated users/roles to 2013?

for example, in EMC 2010 i see only:
Organization Configuration > hub transport
recipient config > mailbox, distribution group, mail contact
toolbox
Avatar of FocIS

ASKER

update:  i made a brand new domain administrator user, and the results in the 2010 EMC and EMS are the same
Nope. You should still see everything in 2010.

Sounds like something has gone wrong with your permissions.

Had you already started to decommission the 2010 server in any way?
Avatar of FocIS

ASKER

No changes were actually made to the 2010 server other than doing these things from the 2013 server:
- initiated (and completed) moving all users to the 2013 database
- rekey the ssl certificate onto the 2013 server, assigned services to that cert
- made a send/receive connector and deleted the 2010 connectors (from 2013)
- changed inbound NAT in the upstream router to target 2013
ASKER CERTIFIED SOLUTION
Avatar of Gareth Gudger
Gareth Gudger
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of FocIS

ASKER

Hmmm - just now i created a new domain admin member, added to server management but not organization

(administrators, domain admins, domain users, enterprise admins) - none are members of organization management (only "administrator" the user is)

no changes

looking at another path, is there a way i can just blow up public folders all together and push in my PST backup from the real public folders as they were?
Easiest way to blow up Public Folders is to dismount them. If you can't in EMC or Shell then stop the Information Store on Exchange. Rename the Public Folders database EDB file (or move it). Then remount them. It will prompt to create a brand new database. Do this. Then you can easily delete that blank database.

Then create a brand new Public Folder Mailbox in 2013 and import from PST.

Of course, you will lose all your permissions. And whether the folders were mail enabled.

So if you can get to them from Tools >> Public Folder Management then try to record all of them prior to this.

If you can't get that far from limitations in EMC, there are ways to delete Public Folders with ADSI Edit.

Does it appear Exchange 2013 is limited in any fashion? Are you seeing everything you are supposed to in 2013? 2010 and 2013 pretty much use an identical RBAC model.

You couldn't run Get-PublicFolder from 2010. Can you run it from the 2013 shell? Your problems may follow you to 2013.
Avatar of FocIS

ASKER

exchange 2013 doesn't appear to be limited or crippled in any way, it looks like every other 2013 i've seen, behaves normally (besides not migrating public folders)

get-publicfolder on the 2013 shell shows that there is no public folder mailbox (since they dont use databases anymore)
[PS] C:\Windows\system32>get-publicfolder
No active public folder mailboxes were found. This happens when no public folder mailboxes are provisioned or they are
provisioned in 'HoldForMigration' mode. If you're not currently performing a migration, create a public folder mailbox.

Open in new window


on the 2010 EMC - tools > public folders, says not connected.  when i click 'connect to a server' and then click browse, i get an error (graphical) which says:
The term 'get-publicfolderdatabase' is not recognized as the name of a cmdlet, function, script file, or operable program'

UPDATE:  wow, this is one for the record books.  i was messing with outlook as a user, and checked 'save password' - from that minute forward, EMC and EMS on 2010 were using the stored username and password instead of my logged in user (administrator)... after deleting those saved credentials (http://fixingitpro.com/2011/07/12/65/) i am able to see everything in 2010 again, and get-publicfolder works on 2010 again.

so now back to the original list of steps, i'll let you know how it goes
Weird. Did you have Outlook installed on the 2010 server?
Avatar of FocIS

ASKER

*looks around* - yes
Avatar of FocIS

ASKER

FIX:  i was messing with outlook as a user, and checked 'save password' - from that minute forward, EMC and EMS on 2010 were using the stored username and password instead of my logged in user (administrator)... after deleting those saved credentials (http://fixingitpro.com/2011/07/12/65/) i am able to see everything in 2010 again, and get-publicfolder works on 2010 again.