Dynamics 365创建用户提示:您正在尝试使用已由其他用户使用的域登录来创建用户。的解决办法

Dynamics 365创建用户提示:您正在尝试使用已由其他用户使用的域登录来创建用户。的解决办法

创建用户的时候如果用来登录的用户名已经存在的话会提示:您正在尝试使用已由其他用户使用的域登录来创建用户。请选择其他的域登录,然后重试。

英文版本提示是:You are attempting to create a user with a domain logon that is already used by another user. Select another domain logon and try again.

这个一般情况下选择其他的域登录就可以,如果非要用这个用户名,找出来这个用户名修改就可以。

但是在万一的情况下你可能会碰到有这个提示,但是找不到这个用户,咋回事呢?我猜测是有人直接操作数据库从SystemUserBase表中直接删除了这个用户,这个是很危险的。

我们知道Dynamics CRM的用户是不能删除的,可以禁用。

碰到这种情况怎么办?我找到一个办法,思路来自这个文章: Authentication when you are adding a new user to CRM, or a user to a new Organization in CRM  

但是这个方法是不受支持的开发方法,一般不要在生产环境操作,谨记。

这里假设出问题的账号是 luoyong@luoyong.me ,该域账号的objectSid 可以通过如下方法查看。

Dynamics 365创建用户提示:您正在尝试使用已由其他用户使用的域登录来创建用户。的解决办法

 执行如下SQL来处理,如果不是使用LIKE操作符号的话,objectSid前面要加上 W: 

 objectSid 实例:S-1-5-21-1201544035-1550756982-2278996173-427108

DELETE from MSCRM_CONFIG.dbo.SystemUserOrganizations WHERE UserId=
(
select userid from MSCRM_CONFIG.dbo.SystemUserAuthentication where AuthInfo LIKE '%objectSid%'
)

DELETE FROM MSCRM_CONFIG.dbo.SystemUserAuthentication where AuthInfo  LIKE '%objectSid%'

这样处理后还需对CRM的应用程序池执行下Recycle,当然IIS重启也是可以的,切记这个步骤不可少,否则还是同样的错误。