Example #1
0
        public override void ProcessRecord()
        {
            if (!this.dataObject.Force && !base.ShouldContinue(Strings.PromptToOverwriteDlpPoliciesOnImport))
            {
                return;
            }
            ADRuleStorageManager adruleStorageManager = new ADRuleStorageManager(Utils.RuleCollectionNameFromRole(), base.DataSession);

            adruleStorageManager.LoadRuleCollection();
            foreach (TransportRuleHandle transportRuleHandle in adruleStorageManager.GetRuleHandles())
            {
                Guid guid;
                if (transportRuleHandle.Rule.TryGetDlpPolicyId(out guid))
                {
                    base.DataSession.Delete(transportRuleHandle.AdRule);
                }
            }
            DlpUtils.GetInstalledTenantDlpPolicies(base.DataSession).ToList <ADComplianceProgram>().ForEach(new Action <ADComplianceProgram>(base.DataSession.Delete));
            List <DlpPolicyMetaData> list = DlpUtils.LoadDlpPolicyInstances(this.dataObject.FileData).ToList <DlpPolicyMetaData>();

            foreach (DlpPolicyMetaData dlpPolicy in list)
            {
                IEnumerable <PSObject> enumerable;
                DlpUtils.AddTenantDlpPolicy(base.DataSession, dlpPolicy, Utils.GetOrganizationParameterValue(this.dataObject.Fields), new CmdletRunner(DlpPolicyTemplateMetaData.AllowedCommands, DlpPolicyTemplateMetaData.RequiredParams, null), out enumerable);
            }
        }
Example #2
0
        private void WriteFormattedRules()
        {
            ADRuleStorageManager ruleStorageManager = base.RuleStorageManager;

            ruleStorageManager.LoadRuleCollection();
            IEnumerable <TransportRuleHandle> ruleHandles = ruleStorageManager.GetRuleHandles();
            List <Rule> list = new List <Rule>();

            foreach (TransportRuleHandle transportRuleHandle in ruleHandles)
            {
                string text = null;
                try
                {
                    Rule rule = Rule.CreateFromInternalRule(this.supportedPredicates, this.supportedActions, transportRuleHandle.Rule, transportRuleHandle.AdRule.Priority, transportRuleHandle.AdRule);
                    if (base.NeedSuppressingPiiData)
                    {
                        rule.SuppressPiiData(Utils.GetSessionPiiMap(base.ExchangeRunspaceConfig));
                    }
                    list.Add(rule);
                }
                catch (ArgumentException ex)
                {
                    text = ex.Message;
                }
                catch (InvalidOperationException ex2)
                {
                    text = ex2.Message;
                }
                catch (ParserException ex3)
                {
                    text = ex3.Message;
                }
                catch (RulesValidationException ex4)
                {
                    text = ex4.Message;
                }
                if (text != null)
                {
                    base.WriteWarning(Strings.ErrorObjectHasValidationErrorsWithId(transportRuleHandle.AdRule.Identity.ToString()) + " " + text);
                }
            }
            this.WriteResult(new BinaryFileDataObject
            {
                FileData = PowershellTransportRuleSerializer.Serialize(list)
            });
        }
Example #3
0
 internal static IEnumerable <TransportRuleHandle> GetTransportRuleHandles(IConfigDataProvider dataSession, out ADRuleStorageManager ruleStorageManager)
 {
     ruleStorageManager = new ADRuleStorageManager(Utils.RuleCollectionNameFromRole(), dataSession);
     ruleStorageManager.LoadRuleCollection();
     return(ruleStorageManager.GetRuleHandles());
 }