我正在将我公司的 Exchange 设置从 2007 升级到 2010(通过配置一台运行 2010 的新服务器,移动邮箱,然后停用 2007 服务器)。迁移过程没有出现任何实际问题,但我遇到了一个问题,即我无法在没有错误消息的情况下删除旧的 2007 服务器。
2007 服务器上仍然有公用文件夹数据库,当我尝试从 EMC 内部删除公用文件夹数据库时出现以下错误:
Microsoft Exchange 错误
无法删除公用文件夹数据库“Public Folder Database”。
公用文件夹数据库失败错误:公用文件夹数据库“OLDSERVER\Second Storage Group\Public Folder Database”包含文件夹副本。删除公用文件夹数据库之前,请删除文件夹或将副本移至另一个公用文件夹数据库。有关如何删除公用文件夹数据库的详细说明,请参阅http://go.microsoft.com/fwlink/?linkid=81409。
好的
我点击链接发现我需要使用以下命令移动数据库内的所有副本:
.\MoveAllReplicas.ps1 -Server Server01 -NewServer Server02
所以我运行了它:
[PS] C:\Program Files\Microsoft\Exchange Server\Scripts>.\MoveAllReplicas.ps1 -Server "OLDSERVER" -NewServer "NEWSERVER"
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
Set-PublicFolder : The parameter "Replicas" cannot be $null or an empty array.
At C:\Program Files\Microsoft\Exchange Server\Scripts\ReplaceReplicaOnPFRecursive.ps1:147 char:24
+ $_ | set-publicfolder <<<< -server $_.OriginatingServer;
[PS] C:\Program Files\Microsoft\Exchange Server\Scripts>
当我从 Exchange 2010 shell 运行相同的命令时,它只是退出并返回到 shell 提示符。当我尝试删除公用文件夹数据库时,仍然收到副本错误。
我查看了 ReplaceReplicaOnPFRecursive.ps1 的 2010 版本,结果发现它对给定的数据没有任何作用。它构建的要修改的文件夹递归列表是空的,因此最终没有执行任何命令。
有任何想法吗?
答案1
将公用文件夹数据移动到 Exchange 2010
公用文件夹是 Exchange 2010 中的一项可选功能。如果您组织中的所有客户端计算机都运行 Microsoft Office Outlook 2007 或更高版本,则公用文件夹是一项可选功能。但是,如果正在使用 Outlook 2003 客户端,则公用文件夹是必需的。此外,如果您当前正在使用公用文件夹来收集、组织或共享文档和其他信息,并且想要继续这样做,则可以使用公用文件夹复制将公用文件夹数据移动到 Exchange 2010。
了解更多信息:了解公用文件夹复制 28
我该怎么做呢?
您可以使用 Exchange 管理控制台执行此任务。
- 在控制台树中,单击“工具箱”。
- 在结果窗格中,双击“公用文件夹管理控制台”。 此时将显示公用文件夹管理控制台。
- 在公用文件夹树中,单击或展开“默认公用文件夹”,然后选择要移动到 Exchange 2010 的公用文件夹的父公用文件夹。注意:要为脱机通讯簿 (OAB) 或 Schedule+ 忙/闲信息配置复制,请展开“系统公用文件夹”,然后单击“脱机通讯簿”或“SCHEDULE+ 忙/闲”。
- 在结果窗格中,右键单击要复制到 Exchange 2010 的公用文件夹,然后选择“属性”。
- 在“复制”选项卡上,单击“添加”以选择 Exchange 2010 公用文件夹数据库,然后单击“确定”。
- 默认情况下,Exchange 使用为公用文件夹数据库配置的复制计划。要为公用文件夹创建自定义复制计划,请清除“使用公用文件夹数据库复制计划”复选框,然后选择列表中的一项设置。
- 要创建自定义时间表,请单击自定义。
- 要设置计划,请单击“计划”对话框中的时间网格。公用文件夹复制将在您指定的时间段内运行。
- 单击“确定”关闭“计划”对话框。
- 要指定此公用文件夹中项目的期限,请在“本地副本期限(天)”框中键入天数。已达到期限的项目将被删除。
注意:期限限制只应用于公共文件夹。不应将其用于系统文件夹,例如 OFFLINE ADDRESS BOOK 或 SCHEDULE+ FREE BUSY。
- 单击“确定”关闭“属性”对话框并保存更改。
- 对要移动到 Exchange 2010 的每个公用文件夹重复步骤 4-11。
我怎么知道这有效?
您可以使用 Exchange 命令行管理程序中的 Get-PublicFolder cmdlet 来验证 Exchange 2010 公用文件夹数据库上的副本。例如,要确定公用文件夹树中所有公用文件夹的副本,请运行以下命令:Get-PublicFolder -Recurse | Format-List Name,Replicas 要确定所有系统文件夹的副本,请运行以下命令:Get-PublicFolder \NON_IPM_SUBTREE | Format-List Name,Replicas 29 了解有关该 cmdlet 的更多信息,请访问:Get-PublicFolder
访问链接: http://technet.microsoft.com/en-us/exdeploy2010/default.aspx#DeploymentCheckList/ee958313/2007
答案2
如果您启用了 UAC,您是否以管理员身份运行 Exchange 命令行管理程序(右键单击 -> “以管理员身份运行”)?
当您不使用以管理员身份运行选项时,我以前遇到过公用文件夹脚本的问题(addreplicatopfrecursive.ps1 和 removereplicafromPFrecursive.ps1 无法正常工作)。