Пример #1
0
        protected override void InternalProcessRecord()
        {
            if (Utils.Exchange12HubServersExist(this))
            {
                this.WriteWarning(Strings.RemoveRuleSyncAcrossDifferentVersionsNeeded);
            }
            IConfigDataProvider configDataProvider = new MessagingPoliciesSyncLogDataSession(base.DataSession, null, null);

            configDataProvider.Delete(base.DataObject);
        }
Пример #2
0
 private void RecoverDeletedRules(string domainController)
 {
     if (this.transportRuleCollectionBackUp != null)
     {
         IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(domainController, false, ConsistencyMode.IgnoreInvalid, base.SessionSettings, 631, "RecoverDeletedRules", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\TransportRule\\ImportTransportRuleCollection.cs");
         IConfigDataProvider   session = new MessagingPoliciesSyncLogDataSession(tenantOrTopologyConfigurationSession, null, null);
         ADRuleStorageManager  adruleStorageManager = new ADRuleStorageManager(this.ruleCollectionName, session);
         adruleStorageManager.ClearRules(null);
         adruleStorageManager.ReplaceRules(this.transportRuleCollectionBackUp, this.ResolveCurrentOrganization());
     }
 }
Пример #3
0
        private void ProcessE15Format(IEnumerable <string> cmdlets)
        {
            Exception ex = null;

            try
            {
                IConfigDataProvider  session     = new MessagingPoliciesSyncLogDataSession(base.DataSession, null, null);
                ADRuleStorageManager storedRules = new ADRuleStorageManager(this.ruleCollectionName, session);
                this.ClearExistingRules(storedRules);
            }
            catch (RuleCollectionNotInAdException exception)
            {
                base.WriteError(exception, ErrorCategory.InvalidOperation, null);
                return;
            }
            string lastUsedDc = (base.DataSession as IConfigurationSession).LastUsedDc;

            cmdlets = this.ProcessCmdlets(cmdlets);
            try
            {
                string       organizationParameterValue = Utils.GetOrganizationParameterValue(base.Fields);
                CmdletRunner cmdletRunner = new CmdletRunner(ImportTransportRuleCollection.AllowedCommands, null, null);
                foreach (string policyCommand in cmdlets)
                {
                    string cmdlet = Utils.AddOrganizationScopeToCmdlet(policyCommand, organizationParameterValue);
                    cmdletRunner.RunCmdlet(cmdlet, !this.ContinueOnFailure);
                }
            }
            catch (ArgumentException ex2)
            {
                ex = ex2;
            }
            catch (ParseException ex3)
            {
                ex = ex3;
            }
            catch (RuntimeException ex4)
            {
                ex = ex4;
            }
            catch (CmdletExecutionException ex5)
            {
                ex = ex5;
            }
            if (ex != null)
            {
                this.RecoverDeletedRules(lastUsedDc);
                base.WriteError(ex, ErrorCategory.InvalidArgument, "Error executing script from the cmdlet block: " + ex.Message);
            }
        }
Пример #4
0
        public static void AddTenantDlpPolicy(IConfigDataProvider dataSession, DlpPolicyMetaData dlpPolicy, string organizationParameterValue, CmdletRunner cmdletRunner, out IEnumerable <PSObject> results)
        {
            results = null;
            ADComplianceProgram           adcomplianceProgram = dlpPolicy.ToAdObject();
            ADComplianceProgramCollection dlpPolicyCollection = DlpUtils.GetDlpPolicyCollection(dataSession, DlpUtils.TenantDlpPoliciesCollectionName);

            adcomplianceProgram.OrganizationId = dlpPolicyCollection.OrganizationId;
            adcomplianceProgram.SetId(dlpPolicyCollection.Id.GetChildId(dlpPolicy.Name));
            dataSession.Save(adcomplianceProgram);
            IEnumerable <string> enumerable    = Utils.AddOrganizationScopeToCmdlets(dlpPolicy.PolicyCommands, organizationParameterValue);
            string            domainController = null;
            ADSessionSettings sessionSettings  = null;
            MessagingPoliciesSyncLogDataSession messagingPoliciesSyncLogDataSession = dataSession as MessagingPoliciesSyncLogDataSession;

            if (messagingPoliciesSyncLogDataSession != null)
            {
                domainController = messagingPoliciesSyncLogDataSession.LastUsedDc;
                sessionSettings  = messagingPoliciesSyncLogDataSession.SessionSettings;
            }
            try
            {
                foreach (string cmdlet in enumerable)
                {
                    cmdletRunner.RunCmdlet(cmdlet, true);
                }
            }
            catch (ParseException e)
            {
                DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e);
            }
            catch (RuntimeException e2)
            {
                DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e2);
            }
            catch (CmdletExecutionException e3)
            {
                DlpUtils.HandleScriptExecutionError(adcomplianceProgram, DlpUtils.GetErrorHandlingDataSession(domainController, sessionSettings, dataSession), e3);
            }
        }
Пример #5
0
        private void ProcessE14Format(TransportRuleCollection rules)
        {
            ADRuleStorageManager adruleStorageManager;

            try
            {
                IConfigDataProvider session = new MessagingPoliciesSyncLogDataSession(base.DataSession, null, null);
                adruleStorageManager = new ADRuleStorageManager(this.ruleCollectionName, session);
            }
            catch (RuleCollectionNotInAdException exception)
            {
                base.WriteError(exception, ErrorCategory.InvalidOperation, null);
                return;
            }
            Exception ex = null;

            try
            {
                if (!Utils.IsEdgeRoleInstalled())
                {
                    Version v     = null;
                    bool    flag  = false;
                    bool    flag2 = false;
                    foreach (Rule rule in rules)
                    {
                        TransportRule transportRule = (TransportRule)rule;
                        if (transportRule.IsTooAdvancedToParse)
                        {
                            base.WriteError(new InvalidOperationException(Strings.CannotCreateRuleDueToVersion(transportRule.Name)), ErrorCategory.InvalidOperation, null);
                            return;
                        }
                        Version minimumVersion = transportRule.MinimumVersion;
                        if (v == null || v < minimumVersion)
                        {
                            v = minimumVersion;
                        }
                        if (!flag || !flag2)
                        {
                            foreach (Action action in transportRule.Actions)
                            {
                                if (string.Equals(action.Name, "ApplyDisclaimer") || string.Equals(action.Name, "ApplyDisclaimerWithSeparator") || string.Equals(action.Name, "ApplyDisclaimerWithSeparatorAndReadingOrder"))
                                {
                                    flag = true;
                                }
                                if (string.Equals(action.Name, "LogEvent"))
                                {
                                    flag2 = true;
                                }
                            }
                        }
                    }
                    if (flag && !this.Force && !base.ShouldContinue(Strings.PromptToUpgradeRulesFormat))
                    {
                        return;
                    }
                    if (flag2 && !this.Force && !base.ShouldContinue(Strings.PromptToRemoveLogEventAction))
                    {
                        return;
                    }
                }
                try
                {
                    adruleStorageManager.ReplaceRules(rules, this.ResolveCurrentOrganization());
                }
                catch (DataValidationException exception2)
                {
                    base.WriteError(exception2, ErrorCategory.InvalidArgument, null);
                    return;
                }
            }
            catch (ArgumentOutOfRangeException ex2)
            {
                ex = ex2;
            }
            catch (ArgumentException ex3)
            {
                ex = ex3;
            }
            catch (PathTooLongException ex4)
            {
                ex = ex4;
            }
            catch (DirectoryNotFoundException ex5)
            {
                ex = ex5;
            }
            catch (UnauthorizedAccessException ex6)
            {
                ex = ex6;
            }
            catch (FileNotFoundException ex7)
            {
                ex = ex7;
            }
            catch (IOException ex8)
            {
                ex = ex8;
            }
            catch (NotSupportedException ex9)
            {
                ex = ex9;
            }
            if (ex != null)
            {
                base.WriteError(ex, ErrorCategory.InvalidOperation, null);
            }
        }