如何修改本地Dynamics CRM组织ID与原服务器一致适配绑定Org ID的托管插件
修改本地Dynamics CRM环境的组织ID(Org ID)以匹配原服务器
重要前提
- 必须先备份数据:操作前完整备份
MSCRM_CONFIG配置数据库和目标组织的业务数据库,避免操作失误导致数据丢失。 - 此操作属于非常规修改,不被微软官方支持,可能影响系统后续升级、维护和稳定性,请谨慎执行。
具体操作步骤
1. 停止CRM相关服务
在服务器上停止所有Dynamics CRM相关服务,包括但不限于:
- Microsoft Dynamics 365 Server
- Microsoft Dynamics 365 Sandbox Processing Service
- Microsoft Dynamics 365 Asynchronous Processing Service
- Microsoft Dynamics 365 VSS Writer Service
2. 更新配置数据库(MSCRM_CONFIG)中的Org ID
使用SQL Server Management Studio连接到MSCRM_CONFIG数据库:
- 查询
Organization表,定位目标组织的记录:SELECT * FROM Organization WHERE UniqueName = '你的组织唯一名称' - 更新该记录的
OrganizationId字段为原服务器的Org ID(确保是合法的GUID格式):UPDATE Organization SET OrganizationId = '原服务器的Org ID(GUID)' WHERE UniqueName = '你的组织唯一名称' - 检查并更新关联表中的Org ID,比如
OrganizationMap、Subscription等,确保所有关联记录的Org ID同步修改:-- 示例:更新OrganizationMap表 UPDATE OrganizationMap SET OrganizationId = '原服务器的Org ID(GUID)' WHERE OrganizationId = '当前环境的旧Org ID'
3. 更新组织业务数据库中的Org ID
连接到目标组织的业务数据库:
- 先查询所有包含
OrganizationId字段的表:SELECT t.name AS 表名, c.name AS 字段名 FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id WHERE c.name = 'OrganizationId' - 对每个查询到的表,更新
OrganizationId字段为原服务器的Org ID。注意处理外键约束,必要时先禁用外键,更新后再启用:-- 示例:更新某表的OrganizationId UPDATE [表名] SET OrganizationId = '原服务器的Org ID(GUID)' WHERE OrganizationId = '当前环境的旧Org ID' - 额外检查系统核心表,比如
SystemSettings、MetadataSchema.Entity等,确保这些表中的Org ID也已更新。
4. 重启并验证CRM服务
- 重新启动所有之前停止的Dynamics CRM服务。
- 打开Dynamics CRM Deployment Manager,选中目标组织,右键点击Properties,确认组织ID已更新为原服务器的Org ID。
- 登录CRM客户端,测试绑定Org ID的插件是否正常触发,验证相关业务流程无报错。
额外注意事项
- 如果系统存在其他依赖Org ID的组件(如SSRS报表、自定义集成工具、第三方插件),需要同步更新这些组件中的Org ID引用。
- 确保原服务器的Org ID在所有代码和配置中完全匹配(GUID的大小写在SQL中不敏感,但部分自定义代码可能区分大小写,建议统一格式)。
- 操作后密切监控系统运行状态,若出现异常,立即恢复备份的数据库。
内容的提问来源于stack exchange,提问作者Evgenii Pereverzev
相关产品推荐
相关产品推荐

