SharePoint 2010卸载StoragePoint报错:找不到指定EndPointId
我来帮你搞定这个头疼的问题——这个报错明显是某个文档版本的端点关联数据残留导致的,咱们一步步排查修复:
1. 定位问题文档和版本
首先得找到报错里提到的那个具体项目:
- 用PowerShell快速定位站点中的目标文档,把
http://your-site-url替换成实际站点URL,itemid换成报错里的ItemId:$site = Get-SPSite "http://your-site-url" $web = $site.OpenWeb() $listItem = $web.GetListItemById([System.Guid]"itemid") Write-Host "找到目标文档: " $listItem.Name " 所在列表: " $listItem.ParentList.Title - 打开这个文档的版本历史,找到
UIVersion: 512对应的版本,确认它是否真的完成召回,或者有没有版本损坏的情况。
2. 清理StoragePoint数据库残留数据
既然你已经看过StoragePoint数据库,重点检查这几个核心表(操作前务必备份数据库!):
- 查询
BinaryObjects表,定位目标项目的残留记录:SELECT * FROM BinaryObjects WHERE SiteId = 'siteid' AND ItemId = 'itemid' AND UIVersion = 512 - 如果查到记录,再检查
EndPoints表,确认报错里的EndPointId是否已经不存在(如果端点已被删除,那这条记录就是无效残留)。 - 确认无误后,删除这条
BinaryObjects里的残留记录——别担心,这个记录只是StoragePoint的关联数据,不会影响SharePoint本身的文档内容。
3. 重置计时器作业
清理完数据库后,处理报错的计时器作业:
- 先找到并暂停相关的StoragePoint召回作业:
$recallJob = Get-SPTimerJob | Where-Object {$_.Name -match "StoragePoint.*Recall"} $recallJob.Status = [Microsoft.SharePoint.Administration.SPTimerJobStatus]::Disabled $recallJob.Update() - 清理作业历史,避免旧错误重复触发:
$recallJob.DeleteHistory() - 重启SharePoint计时器服务,再重新启用作业,手动运行一次验证是否还报错。
4. 强制卸载的备选方案
如果前面的步骤都没解决问题,试试用强制卸载参数:
- 找到StoragePoint的卸载程序(通常在
C:\Program Files\Metalogix\StoragePoint目录下),打开命令提示符运行:StoragePointUninstaller.exe /force - 这个参数会忽略部分残留关联数据,强制完成卸载,但前提是你已经确认所有内容都已经召回,并且备份好所有数据。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

