private static void MoveItemToNewPath(IOguObject oguObject, DirectoryEntry targetObject)
        {
            ADHelper adHelper = SynchronizeContext.Current.ADHelper;

            IDMapping mapping   = null;
            var       oguParent = oguObject.Parent;

            if (oguParent != null)
            {
                mapping = SynchronizeContext.Current.IDMapper.GetAdObjectMapping(oguParent.ID, false);
            }

            if (mapping != null)
            {
                using (var adEntry = SynchronizeHelper.GetDirectoryEntryByID(SynchronizeContext.Current.ADHelper, mapping.ADObjectGuid))
                {
                    if (adEntry != null)
                    {
                        try
                        {
                            targetObject.MoveTo(adEntry);
                        }
                        catch (DirectoryServicesCOMException comEx)
                        {
                            switch (comEx.ErrorCode)
                            {
                            case -2147019886:
                                //重名
                                SynchronizeHelper.SolveConflictAboutMove(oguObject, targetObject, adEntry);
                                break;

                            case -2147016656:
                                Trace.WriteLine("修改对象属性后,移动对象说对象不存在??被移动的对象:" + oguObject.Name);
                                throw;

                            default:
                                throw;
                            }
                        }
                    }
                }
            }
            else
            {
                var parentDn = SynchronizeHelper.GetParentObjectDN(oguObject);

                Trace.WriteLine("不可靠的方法被执行,目标不存在时,靠DN来延迟移动。Careful !");
                // 父对象还不存在,这可能是被重命名了
                //SynchronizeContext.Current.DelayActions.Add(new DelayMoveToAction(oguObject, parentDn, targetObject.Guid));

                // 没有这种可能性
                var context = SynchronizeContext.Current;
                context.ExceptionCount++;

                LogHelper.WriteSynchronizeDBLogDetail(SynchronizeContext.Current.SynchronizeID, "移动对象", oguObject.ID, oguObject.Name,
                                                      context.ADHelper.GetPropertyStrValue("objectGuid", targetObject),
                                                      context.ADHelper.GetPropertyStrValue("distinguishedName", targetObject),
                                                      string.Format("父对象:{0}无映射,无法移动。", parentDn));
            }
        }