Esempio n. 1
0
 protected override void ModifyRequest(TransactionalRequestJob requestJob)
 {
     this.mdbGuid = requestJob.WorkItemQueueMdb.ObjectGuid;
     if (requestJob.TargetUser != null)
     {
         requestJob.DomainControllerToUpdate = requestJob.TargetUser.OriginatingServer;
     }
     else if (requestJob.SourceUser != null)
     {
         requestJob.DomainControllerToUpdate = requestJob.SourceUser.OriginatingServer;
     }
     requestJob.PoisonCount = 0;
     if (requestJob.Suspend)
     {
         requestJob.Suspend         = false;
         requestJob.Message         = LocalizedString.Empty;
         requestJob.TotalRetryCount = 0;
         LocalizedString msg;
         if (this.SuspendWhenReadyToComplete)
         {
             requestJob.SuspendWhenReadyToComplete = true;
             msg = MrsStrings.ReportRequestResumedWithSuspendWhenReadyToComplete(base.ExecutingUserIdentity);
         }
         else
         {
             msg = MrsStrings.ReportRequestResumed(base.ExecutingUserIdentity);
         }
         ReportData      reportData      = new ReportData(requestJob.RequestGuid, requestJob.ReportVersion);
         ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS);
         reportData.Append(msg, connectivityRec);
         reportData.Flush(base.RJProvider.SystemMailbox);
     }
 }
Esempio n. 2
0
 protected override void ModifyMoveRequest(TransactionalRequestJob moveRequest)
 {
     this.mdbGuid = moveRequest.WorkItemQueueMdb.ObjectGuid;
     if (base.LocalADUser != null)
     {
         moveRequest.DomainControllerToUpdate = base.LocalADUser.OriginatingServer;
     }
     moveRequest.PoisonCount = 0;
     if (moveRequest.Suspend)
     {
         moveRequest.Suspend = false;
         moveRequest.Message = LocalizedString.Empty;
         DateTime?timestamp = moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter);
         moveRequest.TimeTracker.SetTimestamp(RequestJobTimestamp.DoNotPickUntil, timestamp);
         moveRequest.TotalRetryCount = 0;
         LocalizedString msg;
         if (this.SuspendWhenReadyToComplete)
         {
             moveRequest.SuspendWhenReadyToComplete = true;
             msg = MrsStrings.ReportRequestResumedWithSuspendWhenReadyToComplete(base.ExecutingUserIdentity);
         }
         else
         {
             msg = MrsStrings.ReportMoveRequestResumed(base.ExecutingUserIdentity);
         }
         ReportData      reportData      = new ReportData(moveRequest.ExchangeGuid, moveRequest.ReportVersion);
         ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS);
         reportData.Append(msg, connectivityRec);
         reportData.Flush(base.MRProvider.SystemMailbox);
     }
 }
 protected override void ModifyMoveRequest(TransactionalRequestJob moveRequest)
 {
     this.mdbGuid = moveRequest.WorkItemQueueMdb.ObjectGuid;
     if (base.LocalADUser != null)
     {
         moveRequest.DomainControllerToUpdate = base.LocalADUser.OriginatingServer;
     }
     if (!moveRequest.CancelRequest)
     {
         moveRequest.CancelRequest = true;
         moveRequest.TimeTracker.SetTimestamp(RequestJobTimestamp.RequestCanceled, new DateTime?(DateTime.UtcNow));
         base.WriteVerbose(Strings.MarkingMoveJobAsCanceled);
         ReportData      reportData      = new ReportData(moveRequest.ExchangeGuid, moveRequest.ReportVersion);
         ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS);
         reportData.Append(MrsStrings.ReportMoveRequestRemoved(base.ExecutingUserIdentity), connectivityRec);
         reportData.Flush(base.MRProvider.SystemMailbox);
     }
 }
 protected override void ModifyMoveRequest(TransactionalRequestJob moveRequest)
 {
     this.mdbGuid = moveRequest.WorkItemQueueMdb.ObjectGuid;
     if (base.LocalADUser != null)
     {
         moveRequest.DomainControllerToUpdate = base.LocalADUser.OriginatingServer;
     }
     moveRequest.TimeTracker.SetTimestamp(RequestJobTimestamp.DoNotPickUntil, new DateTime?(DateTime.MaxValue));
     if (!moveRequest.Suspend)
     {
         moveRequest.Suspend = true;
         if (!string.IsNullOrEmpty(this.SuspendComment))
         {
             moveRequest.Message = MrsStrings.MoveRequestMessageInformational(new LocalizedString(this.SuspendComment));
         }
         ReportData      reportData      = new ReportData(moveRequest.ExchangeGuid, moveRequest.ReportVersion);
         ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS);
         reportData.Append(MrsStrings.ReportMoveRequestSuspended(base.ExecutingUserIdentity), connectivityRec);
         reportData.Flush(base.MRProvider.SystemMailbox);
     }
 }
Esempio n. 5
0
 protected override void ModifyRequest(TransactionalRequestJob requestJob)
 {
     this.mdbGuid = requestJob.WorkItemQueueMdb.ObjectGuid;
     if (requestJob.TargetUser != null)
     {
         requestJob.DomainControllerToUpdate = requestJob.TargetUser.OriginatingServer;
     }
     else if (requestJob.SourceUser != null)
     {
         requestJob.DomainControllerToUpdate = requestJob.SourceUser.OriginatingServer;
     }
     if (!requestJob.CancelRequest)
     {
         requestJob.CancelRequest = true;
         base.WriteVerbose(Strings.MarkingMoveJobAsCanceled);
         ReportData      reportData      = new ReportData(requestJob.RequestGuid, requestJob.ReportVersion);
         ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS);
         reportData.Append(MrsStrings.ReportRequestRemoved(base.ExecutingUserIdentity), connectivityRec);
         reportData.Flush(base.RJProvider.SystemMailbox);
     }
 }
Esempio n. 6
0
 protected override void ModifyRequest(TransactionalRequestJob requestJob)
 {
     this.mdbGuid = requestJob.WorkItemQueueMdb.ObjectGuid;
     if (requestJob.TargetUser != null)
     {
         requestJob.DomainControllerToUpdate = requestJob.TargetUser.OriginatingServer;
     }
     else if (requestJob.SourceUser != null)
     {
         requestJob.DomainControllerToUpdate = requestJob.SourceUser.OriginatingServer;
     }
     if (!requestJob.Suspend)
     {
         requestJob.Suspend = true;
         if (!string.IsNullOrEmpty(this.SuspendComment))
         {
             requestJob.Message = MrsStrings.MoveRequestMessageInformational(new LocalizedString(this.SuspendComment));
         }
         ReportData      reportData      = new ReportData(requestJob.RequestGuid, requestJob.ReportVersion);
         ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS);
         reportData.Append(MrsStrings.ReportRequestSuspended(base.ExecutingUserIdentity), connectivityRec);
         reportData.Flush(base.RJProvider.SystemMailbox);
     }
 }
Esempio n. 7
0
        protected override void ModifyMoveRequest(TransactionalRequestJob moveRequest)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("Set-MoveRequest changed values:");
            this.mdbGuid = moveRequest.WorkItemQueueMdb.ObjectGuid;
            if (base.LocalADUser != null)
            {
                moveRequest.DomainControllerToUpdate = base.LocalADUser.OriginatingServer;
            }
            if (base.IsFieldSet("SuspendWhenReadyToComplete"))
            {
                stringBuilder.AppendLine(string.Format("SWRTC: {0} -> {1}", moveRequest.SuspendWhenReadyToComplete, this.SuspendWhenReadyToComplete));
                moveRequest.SuspendWhenReadyToComplete = this.SuspendWhenReadyToComplete;
            }
            if (base.IsFieldSet("RemoteCredential"))
            {
                string remoteCredentialUsername = moveRequest.RemoteCredentialUsername;
                moveRequest.RemoteCredential = RequestTaskHelper.GetNetworkCredential(this.RemoteCredential, null);
                stringBuilder.AppendLine(string.Format("RemoteCredential: {0}:<pwd> -> {1}:<pwd>", remoteCredentialUsername, moveRequest.RemoteCredentialUsername));
                if ((moveRequest.Flags & RequestFlags.RemoteLegacy) != RequestFlags.None)
                {
                    if (moveRequest.Direction == RequestDirection.Pull)
                    {
                        moveRequest.SourceCredential = moveRequest.RemoteCredential;
                    }
                    else
                    {
                        moveRequest.TargetCredential = moveRequest.RemoteCredential;
                    }
                }
            }
            if (base.IsFieldSet("RemoteGlobalCatalog"))
            {
                string arg;
                if ((moveRequest.Flags & RequestFlags.RemoteLegacy) != RequestFlags.None)
                {
                    if (moveRequest.Direction == RequestDirection.Pull)
                    {
                        arg = moveRequest.SourceDCName;
                        moveRequest.SourceDCName = this.RemoteGlobalCatalog;
                    }
                    else
                    {
                        arg = moveRequest.TargetDCName;
                        moveRequest.TargetDCName = this.RemoteGlobalCatalog;
                    }
                }
                else
                {
                    arg = moveRequest.RemoteDomainControllerToUpdate;
                    moveRequest.RemoteDomainControllerToUpdate = this.RemoteGlobalCatalog;
                }
                stringBuilder.AppendLine(string.Format("RemoteGC: {0} -> {1}", arg, this.RemoteGlobalCatalog));
            }
            if (base.IsFieldSet("RemoteHostName"))
            {
                stringBuilder.AppendLine(string.Format("RemoteHostName: {0} -> {1}", moveRequest.RemoteHostName, this.RemoteHostName));
                moveRequest.RemoteHostName = this.RemoteHostName;
            }
            if (base.IsFieldSet("BadItemLimit"))
            {
                stringBuilder.AppendLine(string.Format("BadItemLimit: {0} -> {1}", moveRequest.BadItemLimit, this.BadItemLimit));
                moveRequest.BadItemLimit = this.BadItemLimit;
            }
            if (base.IsFieldSet("LargeItemLimit"))
            {
                stringBuilder.AppendLine(string.Format("LargeItemLimit: {0} -> {1}", moveRequest.LargeItemLimit, this.LargeItemLimit));
                moveRequest.LargeItemLimit = this.LargeItemLimit;
            }
            if (base.IsFieldSet("Protect"))
            {
                stringBuilder.AppendLine(string.Format("Protect: {0} -> {1}", moveRequest.Protect, this.Protect));
                moveRequest.Protect = this.Protect;
            }
            if (base.IsFieldSet("IgnoreRuleLimitErrors"))
            {
                stringBuilder.AppendLine(string.Format("IgnoreRuleLimitErrors: {0} -> {1}", moveRequest.IgnoreRuleLimitErrors, this.IgnoreRuleLimitErrors));
                moveRequest.IgnoreRuleLimitErrors = this.IgnoreRuleLimitErrors;
            }
            if (base.IsFieldSet("BatchName"))
            {
                stringBuilder.AppendLine(string.Format("BatchName: {0} -> {1}", moveRequest.BatchName, this.BatchName));
                moveRequest.BatchName = this.BatchName;
            }
            if (base.IsFieldSet("Priority"))
            {
                stringBuilder.AppendLine(string.Format("Priority: {0} -> {1}", moveRequest.Priority, this.Priority));
                moveRequest.Priority = this.Priority;
            }
            if (base.IsFieldSet("CompletedRequestAgeLimit"))
            {
                stringBuilder.AppendLine(string.Format("CompletedRequestAgeLimit: {0} -> {1}", moveRequest.CompletedRequestAgeLimit, this.CompletedRequestAgeLimit));
                moveRequest.CompletedRequestAgeLimit = this.CompletedRequestAgeLimit;
            }
            if (base.IsFieldSet("PreventCompletion"))
            {
                stringBuilder.AppendLine(string.Format("PreventCompletion: {0} -> {1}", moveRequest.PreventCompletion, this.PreventCompletion));
                moveRequest.PreventCompletion = this.PreventCompletion;
            }
            if (base.IsFieldSet("StartAfter") && !RequestTaskHelper.CompareUtcTimeWithLocalTime(moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter), this.StartAfter))
            {
                RequestTaskHelper.SetStartAfter(this.StartAfter, moveRequest, stringBuilder);
            }
            if (base.IsFieldSet("CompleteAfter") && !RequestTaskHelper.CompareUtcTimeWithLocalTime(moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.CompleteAfter), this.CompleteAfter))
            {
                RequestTaskHelper.SetCompleteAfter(this.CompleteAfter, moveRequest, stringBuilder);
            }
            if (base.IsFieldSet("IncrementalSyncInterval"))
            {
                moveRequest.IncrementalSyncInterval = this.IncrementalSyncInterval;
            }
            RequestTaskHelper.ValidateStartAfterCompleteAfterWithSuspendWhenReadyToComplete(moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter), moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.CompleteAfter), moveRequest.SuspendWhenReadyToComplete, new Task.TaskErrorLoggingDelegate(base.WriteError));
            RequestTaskHelper.ValidateStartAfterComesBeforeCompleteAfter(moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.StartAfter), moveRequest.TimeTracker.GetTimestamp(RequestJobTimestamp.CompleteAfter), new Task.TaskErrorLoggingDelegate(base.WriteError));
            if (base.IsFieldSet("SkipMoving"))
            {
                RequestJobInternalFlags requestJobInternalFlags = moveRequest.RequestJobInternalFlags;
                RequestTaskHelper.SetSkipMoving(this.SkipMoving, moveRequest, new Task.TaskErrorLoggingDelegate(base.WriteError), true);
                stringBuilder.AppendLine(string.Format("InternalFlags: {0} -> {1}", requestJobInternalFlags, moveRequest.RequestJobInternalFlags));
            }
            if (base.IsFieldSet("InternalFlags"))
            {
                RequestJobInternalFlags requestJobInternalFlags2 = moveRequest.RequestJobInternalFlags;
                RequestTaskHelper.SetInternalFlags(this.InternalFlags, moveRequest, new Task.TaskErrorLoggingDelegate(base.WriteError));
                stringBuilder.AppendLine(string.Format("InternalFlags: {0} -> {1}", requestJobInternalFlags2, moveRequest.RequestJobInternalFlags));
            }
            ReportData      reportData      = new ReportData(moveRequest.ExchangeGuid, moveRequest.ReportVersion);
            ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS);

            reportData.Append(MrsStrings.ReportMoveRequestSet(base.ExecutingUserIdentity), connectivityRec);
            reportData.AppendDebug(stringBuilder.ToString());
            if (this.AcceptLargeDataLoss)
            {
                reportData.Append(MrsStrings.ReportLargeAmountOfDataLossAccepted2(moveRequest.BadItemLimit.ToString(), moveRequest.LargeItemLimit.ToString(), base.ExecutingUserIdentity));
            }
            if (base.IsFieldSet("TargetDatabase") || base.IsFieldSet("ArchiveTargetDatabase"))
            {
                moveRequest.RehomeRequest = true;
                if (base.IsFieldSet("TargetDatabase"))
                {
                    moveRequest.TargetDatabase = this.specifiedTargetMDB.Id;
                }
                if (base.IsFieldSet("ArchiveTargetDatabase"))
                {
                    moveRequest.TargetArchiveDatabase = this.specifiedArchiveTargetMDB.Id;
                }
            }
            reportData.Flush(base.MRProvider.SystemMailbox);
        }
Esempio n. 8
0
        protected override void ModifyRequest(TransactionalRequestJob requestJob)
        {
            this.MdbGuid = requestJob.WorkItemQueueMdb.ObjectGuid;
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("SetRequest changed values:");
            if (requestJob.TargetUser != null)
            {
                requestJob.DomainControllerToUpdate = requestJob.TargetUser.OriginatingServer;
            }
            else if (requestJob.SourceUser != null)
            {
                requestJob.DomainControllerToUpdate = requestJob.SourceUser.OriginatingServer;
            }
            if (base.IsFieldSet("BadItemLimit"))
            {
                stringBuilder.AppendLine(string.Format("BadItemLimit: {0} -> {1}", requestJob.BadItemLimit, this.BadItemLimit));
                requestJob.BadItemLimit = this.BadItemLimit;
            }
            if (base.IsFieldSet("LargeItemLimit"))
            {
                stringBuilder.AppendLine(string.Format("LargeItemLimit: {0} -> {1}", requestJob.LargeItemLimit, this.LargeItemLimit));
                requestJob.LargeItemLimit = this.LargeItemLimit;
            }
            if (base.IsFieldSet("BatchName"))
            {
                stringBuilder.AppendLine(string.Format("BatchName: {0} -> {1}", requestJob.BatchName, this.BatchName));
                requestJob.BatchName = (this.BatchName ?? string.Empty);
            }
            if (base.IsFieldSet("Priority"))
            {
                stringBuilder.AppendLine(string.Format("Priority: {0} -> {1}", requestJob.Priority, this.Priority));
                requestJob.Priority = this.Priority;
            }
            if (base.IsFieldSet("CompletedRequestAgeLimit"))
            {
                stringBuilder.AppendLine(string.Format("CompletedRequestAgeLimit: {0} -> {1}", requestJob.CompletedRequestAgeLimit, this.CompletedRequestAgeLimit));
                requestJob.CompletedRequestAgeLimit = this.CompletedRequestAgeLimit;
            }
            if (this.RehomeRequest)
            {
                stringBuilder.AppendLine(string.Format("RehomeRequest: {0} -> {1}", requestJob.RehomeRequest, this.RehomeRequest));
                requestJob.RehomeRequest = this.RehomeRequest;
            }
            if (base.IsFieldSet("SkipMerging"))
            {
                RequestJobInternalFlags requestJobInternalFlags = requestJob.RequestJobInternalFlags;
                RequestTaskHelper.SetSkipMerging(this.SkipMerging, requestJob, new Task.TaskErrorLoggingDelegate(base.WriteError));
                stringBuilder.AppendLine(string.Format("InternalFlags: {0} -> {1}", requestJobInternalFlags, requestJob.RequestJobInternalFlags));
            }
            if (base.IsFieldSet("InternalFlags"))
            {
                RequestJobInternalFlags requestJobInternalFlags2 = requestJob.RequestJobInternalFlags;
                RequestTaskHelper.SetInternalFlags(this.InternalFlags, requestJob, new Task.TaskErrorLoggingDelegate(base.WriteError));
                stringBuilder.AppendLine(string.Format("InternalFlags: {0} -> {1}", requestJobInternalFlags2, requestJob.RequestJobInternalFlags));
            }
            if (base.IsFieldSet("RemoteHostName"))
            {
                stringBuilder.AppendLine(string.Format("RemoteHostName: {0} -> {1}", requestJob.RemoteHostName, this.RemoteHostName));
                requestJob.RemoteHostName = this.RemoteHostName;
            }
            if (base.IsFieldSet("RemoteCredential"))
            {
                stringBuilder.AppendLine(string.Format("RemoteCredential: * -> *", new object[0]));
                requestJob.RemoteCredential = RequestTaskHelper.GetNetworkCredential(this.RemoteCredential, new AuthenticationMethod?(AuthenticationMethod.WindowsIntegrated));
            }
            this.ModifyRequestInternal(requestJob, stringBuilder);
            ReportData      reportData      = new ReportData(requestJob.RequestGuid, requestJob.ReportVersion);
            ConnectivityRec connectivityRec = new ConnectivityRec(ServerKind.Cmdlet, VersionInformation.MRS);

            reportData.Append(MrsStrings.ReportRequestSet(base.ExecutingUserIdentity), connectivityRec);
            reportData.AppendDebug(stringBuilder.ToString());
            if (this.AcceptLargeDataLoss)
            {
                reportData.Append(MrsStrings.ReportLargeAmountOfDataLossAccepted2(requestJob.BadItemLimit.ToString(), requestJob.LargeItemLimit.ToString(), base.ExecutingUserIdentity));
            }
            reportData.Flush(base.RJProvider.SystemMailbox);
        }