private void UnblockRules()

in src/Analyzer.PowerShellRuleEngine/PowerShellRuleEngine.cs [165:190]


        private void UnblockRules()
        {
            var rulesDirectory = Path.Combine(AppContext.BaseDirectory, "Modules", PSRuleModuleName);

            // Check if rules have already been unblocked
            var moduleFileAlternateDataStream = Path.Combine(rulesDirectory, $"{PSRuleModuleName}.psd1:Unblocked");
            if (File.Exists(moduleFileAlternateDataStream))
            {
                return;
            }

            string[] ruleFiles = Directory.GetFiles(rulesDirectory, "*.ps1", new EnumerationOptions
            {
                RecurseSubdirectories = true,
                MatchCasing = MatchCasing.CaseInsensitive
            });

            // Delete the Zone.Identifier Alternate Data Stream on each rule file
            foreach (string ruleFile in ruleFiles)
            {
                File.Delete($"{ruleFile}:Zone.Identifier");
            }

            // Create a new Alternate Data Stream on the .psd1 module file to indicate that the rules have been unblocked
            File.WriteAllBytes(moduleFileAlternateDataStream, new byte[0]);
        }