Microsoft Dynamics CRM 2011迁移后报错:无指定域用户存在
这个错误我之前帮不少人排查过,核心就是CRM系统没法和域里的用户/安全组对应上——毕竟你刚做了数据库还原和安全组重建,新组的身份标识(SID)和数据库里旧记录肯定对不上,给你几个针对性的排查和解决步骤:
1. 修复安全组的SID匹配问题
CRM是靠**安全标识符(SID)**识别域组/用户的,不是靠组名。你新建的PrivReportingGroup这些组,SID和数据库里原来的记录肯定不一样,这是最常见的触发原因:
- 先在SQL里查数据库中旧组的SID:
-- 替换YourCRMOrgDatabase为你的组织数据库名 SELECT Name, Sid FROM [YourCRMOrgDatabase].[dbo].[SystemUserBase] WHERE IsDisabled = 0 AND DomainName LIKE '%PrivReportingGroup%' - 然后在新服务器上用PowerShell查新建组的SID:
# 替换成你的完整组名,比如PrivReportingGroup{12345678-ABCD-EFGH-IJKL-1234567890AB} Get-ADGroup "你的组全名" | Select-Object Name, SID - 如果两者SID不一致,更新数据库里的SID为新组的(执行前务必备份数据库!):
对其他几个重建的组(SQLAccessGroup、ReportingGroup、PrivUserGroup)重复这个操作。UPDATE [YourCRMOrgDatabase].[dbo].[SystemUserBase] SET Sid = '新组的SID字符串' WHERE Name = '你的组全名'
2. 检查CRM服务账户的权限配置
- 确保新服务器上的CRM异步服务、部署服务所用的域账户,已经加入你新建的那几个安全组里
- 还要确认这个账户对CRM组织数据库有
db_owner权限,对SQL Server Reporting Services的报表数据库也有相应的访问权限
3. 验证普通用户的域映射是否正确
迁移后部分用户的DomainName或SID可能和当前域环境不匹配:
- 执行SQL查询所有启用的用户信息:
SELECT FullName, DomainName, Sid FROM [YourCRMOrgDatabase].[dbo].[SystemUserBase] WHERE IsDisabled = 0 - 对比域里实际用户的DomainName(格式一般是
DOMAIN\用户名)和SID,有不匹配的可以直接更新数据库记录,或者用CRM部署管理器的「用户映射」功能重新同步域用户
4. 清空CRM服务器的配置缓存
旧的服务器配置缓存可能残留信息,导致识别异常:
- 停止所有CRM相关服务(比如Microsoft Dynamics CRM Async Service、Microsoft Dynamics CRM Deployment Service)
- 删除缓存文件夹,默认路径是:
C:\Program Files\Microsoft Dynamics CRM\Server\bin\assembly\cache - 重启所有CRM服务后,再尝试访问系统
5. 确认部署管理器的服务器配置
- 打开CRM部署管理器,检查「服务器」节点下的新服务器记录是否正确,确保服务器名称已经更新
- 重新运行「配置数据库向导」,确认数据库连接指向新服务器的CRM数据库
内容的提问来源于stack exchange,提问作者Ricardo
相关产品推荐
相关产品推荐

