protected override void InternalProcessRecord() { if (Utils.Exchange12HubServersExist(this)) { this.WriteWarning(Strings.RemoveRuleSyncAcrossDifferentVersionsNeeded); } IConfigDataProvider configDataProvider = new MessagingPoliciesSyncLogDataSession(base.DataSession, null, null); configDataProvider.Delete(base.DataObject); }
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()); } }
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); } }
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); } }
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); } }