Team Ai
Datasetpublic

MegaBites-AI/Windows-powershell

sourceHugging Facemitupdated 6mo agoView on Hugging Face
0likes372downloads
test_PSConfiguration.cs992 linesDownload Raw Back to csharp
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using System;5using System.IO;6using System.Management.Automation;7using System.Management.Automation.Configuration;8using System.Management.Automation.Internal;9using System.Reflection;10using System.Threading;11using Newtonsoft.Json;12using Newtonsoft.Json.Linq;13using PSTests.Internal;14using Xunit;15 16namespace PSTests.Sequential17{18    [TestCaseOrderer("TestOrder.TestCaseOrdering.PriorityOrderer", "powershell-tests")]19    public class PowerShellPolicyFixture : IDisposable20    {21        private const string ConfigFileName = "powershell.config.json";22 23        private readonly string systemWideConfigFile;24        private readonly string currentUserConfigFile;25 26        private readonly string systemWideConfigBackupFile;27        private readonly string currentUserConfigBackupFile;28 29        private readonly string systemWideConfigDirectory;30        private readonly string currentUserConfigDirectory;31 32        private readonly JsonSerializer serializer;33 34        private readonly PowerShellPolicies systemWidePolicies;35        private readonly PowerShellPolicies currentUserPolicies;36 37        private readonly bool originalTestHookValue;38 39        public PowerShellPolicyFixture()40        {41            systemWideConfigDirectory = Utils.DefaultPowerShellAppBase;42            currentUserConfigDirectory = Platform.ConfigDirectory;43 44            if (!Directory.Exists(currentUserConfigDirectory))45            {46                // Create the CurrentUser config directory if it doesn't exist47                Directory.CreateDirectory(currentUserConfigDirectory);48            }49 50            systemWideConfigFile = Path.Combine(systemWideConfigDirectory, ConfigFileName);51            currentUserConfigFile = Path.Combine(currentUserConfigDirectory, ConfigFileName);52 53            if (File.Exists(systemWideConfigFile))54            {55                systemWideConfigBackupFile = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());56                File.Move(systemWideConfigFile, systemWideConfigBackupFile);57            }58 59            if (File.Exists(currentUserConfigFile))60            {61                currentUserConfigBackupFile = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());62                File.Move(currentUserConfigFile, currentUserConfigBackupFile);63            }64 65            var settings = new JsonSerializerSettings()66            {67                TypeNameHandling = TypeNameHandling.None,68                MaxDepth = 10,69                Formatting = Formatting.Indented,70                NullValueHandling = NullValueHandling.Ignore71            };72            serializer = JsonSerializer.Create(settings);73 74            systemWidePolicies = new PowerShellPolicies()75            {76                ScriptExecution = new ScriptExecution() { ExecutionPolicy = "RemoteSigned", EnableScripts = true },77                ScriptBlockLogging = new ScriptBlockLogging() { EnableScriptBlockInvocationLogging = true, EnableScriptBlockLogging = false },78                ModuleLogging = new ModuleLogging() { EnableModuleLogging = false, ModuleNames = new string[] { "PSReadline", "PowerShellGet" } },79                ProtectedEventLogging = new ProtectedEventLogging() { EnableProtectedEventLogging = false, EncryptionCertificate = new string[] { "Joe" } },80                Transcription = new Transcription() { EnableInvocationHeader = true, EnableTranscripting = true, OutputDirectory = @"c:\tmp" },81                UpdatableHelp = new UpdatableHelp() { DefaultSourcePath = @"f:\temp" },82                ConsoleSessionConfiguration = new ConsoleSessionConfiguration() { EnableConsoleSessionConfiguration = true, ConsoleSessionConfigurationName = "name" }83            };84 85            currentUserPolicies = new PowerShellPolicies()86            {87                ScriptExecution = new ScriptExecution() { ExecutionPolicy = "RemoteSigned" },88                ScriptBlockLogging = new ScriptBlockLogging() { EnableScriptBlockLogging = false },89                ModuleLogging = new ModuleLogging() { EnableModuleLogging = false },90                ProtectedEventLogging = new ProtectedEventLogging() { EncryptionCertificate = new string[] { "Joe" } }91            };92 93            // Set the test hook to disable policy caching94            originalTestHookValue = InternalTestHooks.BypassGroupPolicyCaching;95            InternalTestHooks.BypassGroupPolicyCaching = true;96        }97 98        public void Dispose()99        {100            Dispose(true);101            GC.SuppressFinalize(this);102        }103 104        protected virtual void Dispose(bool disposing)105        {106            if (disposing)107            {108                CleanupConfigFiles();109                if (systemWideConfigBackupFile != null)110                {111                    File.Move(systemWideConfigBackupFile, systemWideConfigFile);112                }113 114                if (currentUserConfigBackupFile != null)115                {116                    File.Move(currentUserConfigBackupFile, currentUserConfigFile);117                }118 119                InternalTestHooks.BypassGroupPolicyCaching = originalTestHookValue;120            }121        }122 123        internal PowerShellPolicies SystemWidePolicies124        {125            get { return systemWidePolicies; }126        }127 128        internal PowerShellPolicies CurrentUserPolicies129        {130            get { return currentUserPolicies; }131        }132 133        #region Compare_Policy_Settings134 135        internal void CompareScriptExecution(ScriptExecution a, ScriptExecution b)136        {137            if (a == null)138            {139                Assert.Null(b);140            }141            else142            {143                Assert.Equal(a.EnableScripts, b.EnableScripts);144                Assert.Equal(a.ExecutionPolicy, b.ExecutionPolicy);145            }146        }147 148        internal void CompareScriptBlockLogging(ScriptBlockLogging a, ScriptBlockLogging b)149        {150            if (a == null)151            {152                Assert.Null(b);153            }154            else155            {156                Assert.Equal(a.EnableScriptBlockInvocationLogging, b.EnableScriptBlockInvocationLogging);157                Assert.Equal(a.EnableScriptBlockLogging, b.EnableScriptBlockLogging);158            }159        }160 161        internal void CompareModuleLogging(ModuleLogging a, ModuleLogging b)162        {163            if (a == null)164            {165                Assert.Null(b);166            }167            else168            {169                Assert.Equal(a.EnableModuleLogging, b.EnableModuleLogging);170                if (a.ModuleNames == null)171                {172                    Assert.Null(b.ModuleNames);173                }174                else175                {176                    Assert.Equal(a.ModuleNames.Length, b.ModuleNames.Length);177                    for (int i = 0; i < a.ModuleNames.Length; i++)178                    {179                        Assert.Equal(a.ModuleNames[i], b.ModuleNames[i]);180                    }181                }182            }183        }184 185        internal void CompareProtectedEventLogging(ProtectedEventLogging a, ProtectedEventLogging b)186        {187            if (a == null)188            {189                Assert.Null(b);190            }191            else192            {193                Assert.Equal(a.EnableProtectedEventLogging, b.EnableProtectedEventLogging);194                if (a.EncryptionCertificate == null)195                {196                    Assert.Null(b.EncryptionCertificate);197                }198                else199                {200                    Assert.Equal(a.EncryptionCertificate.Length, b.EncryptionCertificate.Length);201                    for (int i = 0; i < a.EncryptionCertificate.Length; i++)202                    {203                        Assert.Equal(a.EncryptionCertificate[i], b.EncryptionCertificate[i]);204                    }205                }206            }207        }208 209        internal void CompareTranscription(Transcription a, Transcription b)210        {211            if (a == null)212            {213                Assert.Null(b);214            }215            else216            {217                Assert.Equal(a.EnableTranscripting, b.EnableTranscripting);218                Assert.Equal(a.EnableInvocationHeader, b.EnableInvocationHeader);219                Assert.Equal(a.OutputDirectory, b.OutputDirectory);220            }221        }222 223        internal void CompareUpdatableHelp(UpdatableHelp a, UpdatableHelp b)224        {225            if (a == null)226            {227                Assert.Null(b);228            }229            else230            {231                Assert.Equal(a.DefaultSourcePath, b.DefaultSourcePath);232            }233        }234 235        internal void CompareConsoleSessionConfiguration(ConsoleSessionConfiguration a, ConsoleSessionConfiguration b)236        {237            if (a == null)238            {239                Assert.Null(b);240            }241            else242            {243                Assert.Equal(a.EnableConsoleSessionConfiguration, b.EnableConsoleSessionConfiguration);244                Assert.Equal(a.ConsoleSessionConfigurationName, b.ConsoleSessionConfigurationName);245            }246        }247 248        internal void CompareTwoPolicies(PowerShellPolicies a, PowerShellPolicies b)249        {250            // Compare 'ScriptExecution' settings251            CompareScriptExecution(a.ScriptExecution, b.ScriptExecution);252 253            // Compare 'ScriptBlockLogging' settings254            CompareScriptBlockLogging(a.ScriptBlockLogging, b.ScriptBlockLogging);255 256            // Compare 'ModuleLogging' settings257            CompareModuleLogging(a.ModuleLogging, b.ModuleLogging);258 259            // Compare 'ProtectedEventLogging' settings260            CompareProtectedEventLogging(a.ProtectedEventLogging, b.ProtectedEventLogging);261 262            // Compare 'Transcription' settings263            CompareTranscription(a.Transcription, b.Transcription);264 265            // Compare 'UpdatableHelp' settings266            CompareUpdatableHelp(a.UpdatableHelp, b.UpdatableHelp);267 268            // Compare 'ConsoleSessionConfiguration' settings269            CompareConsoleSessionConfiguration(a.ConsoleSessionConfiguration, b.ConsoleSessionConfiguration);270        }271 272        #endregion273 274        #region Configuration_File_Setup275 276        public void CleanupConfigFiles()277        {278            var maxPause = 10;279 280            while (maxPause-- != 0 && (File.Exists(systemWideConfigFile) || File.Exists(currentUserConfigFile)))281            {282                var pause = false;283 284                try285                {286                    File.Delete(systemWideConfigFile);287                }288                catch (IOException)289                {290                    pause = true;291                }292 293                try294                {295                    File.Delete(currentUserConfigFile);296                }297                catch (IOException)298                {299                    pause = true;300                }301 302                if (pause)303                {304                    Thread.Sleep(5);305                }306            }307        }308 309        public void SetupConfigFile1()310        {311            CleanupConfigFiles();312 313            // System wide config file has all policy settings314            var systemWideConfig = new { ConsolePrompting = true, PowerShellPolicies = systemWidePolicies };315            using (var streamWriter = new StreamWriter(systemWideConfigFile))316            {317                serializer.Serialize(streamWriter, systemWideConfig);318            }319 320            // Current user config file has partial policy settings321            var currentUserConfig = new { DisablePromptToUpdateHelp = false, PowerShellPolicies = currentUserPolicies };322            using (var streamWriter = new StreamWriter(currentUserConfigFile))323            {324                serializer.Serialize(streamWriter, currentUserConfig);325            }326        }327 328        public void SetupConfigFile2()329        {330            CleanupConfigFiles();331 332            // System wide config file has all policy settings333            var systemWideConfig = new { ConsolePrompting = true, PowerShellPolicies = systemWidePolicies };334            using (var streamWriter = new StreamWriter(systemWideConfigFile))335            {336                serializer.Serialize(streamWriter, systemWideConfig);337            }338 339            // Current user config file is empty340            CreateEmptyFile(currentUserConfigFile);341        }342 343        public void SetupConfigFile3()344        {345            CleanupConfigFiles();346 347            // System wide config file is empty348            CreateEmptyFile(systemWideConfigFile);349 350            // Current user config file has partial policy settings351            var currentUserConfig = new { DisablePromptToUpdateHelp = false, PowerShellPolicies = currentUserPolicies };352            using (var streamWriter = new StreamWriter(currentUserConfigFile))353            {354                serializer.Serialize(streamWriter, currentUserConfig);355            }356        }357 358        public void SetupConfigFile4()359        {360            CleanupConfigFiles();361 362            // System wide config file is empty363            CreateEmptyFile(systemWideConfigFile);364 365            // Current user config file is empty366            CreateEmptyFile(currentUserConfigFile);367        }368 369        private static void CreateEmptyFile(string fileName)370        {371            File.Create(fileName).Dispose();372        }373 374        public void SetupConfigFile5()375        {376            CleanupConfigFiles();377 378            // System wide config file is broken379            CreateBrokenConfigFile(systemWideConfigFile);380 381            // Current user config file is broken382            CreateBrokenConfigFile(currentUserConfigFile);383        }384 385        private static void CreateBrokenConfigFile(string fileName)386        {387            File.WriteAllText(fileName, "[abbra");388        }389 390        internal void ForceReadingFromFile()391        {392            // Reset the cached roots.393            FieldInfo roots = typeof(PowerShellConfig).GetField("configRoots", BindingFlags.NonPublic | BindingFlags.Instance);394            JObject[] value = (JObject[])roots.GetValue(PowerShellConfig.Instance);395            value[0] = null;396            value[1] = null;397        }398 399        #endregion400    }401 402    public class PowerShellPolicyTests : IClassFixture<PowerShellPolicyFixture>403    {404        private readonly PowerShellPolicyFixture fixture;405 406        public PowerShellPolicyTests(PowerShellPolicyFixture fixture)407        {408            this.fixture = fixture;409        }410 411        [Fact, Priority(1)]412        public void PowerShellConfig_GetPowerShellPolicies_BothConfigFilesNotEmpty()413        {414            fixture.SetupConfigFile1();415            fixture.ForceReadingFromFile();416 417            var sysPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.AllUsers);418            var userPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.CurrentUser);419 420            Assert.NotNull(sysPolicies);421            Assert.NotNull(userPolicies);422 423            fixture.CompareTwoPolicies(sysPolicies, fixture.SystemWidePolicies);424            fixture.CompareTwoPolicies(userPolicies, fixture.CurrentUserPolicies);425        }426 427        [Fact, Priority(2)]428        public void PowerShellConfig_GetPowerShellPolicies_EmptyUserConfig()429        {430            fixture.SetupConfigFile2();431            fixture.ForceReadingFromFile();432 433            var sysPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.AllUsers);434            var userPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.CurrentUser);435 436            Assert.NotNull(sysPolicies);437            Assert.Null(userPolicies);438 439            fixture.CompareTwoPolicies(sysPolicies, fixture.SystemWidePolicies);440        }441 442        [Fact, Priority(3)]443        public void PowerShellConfig_GetPowerShellPolicies_EmptySystemConfig()444        {445            fixture.SetupConfigFile3();446            fixture.ForceReadingFromFile();447 448            var sysPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.AllUsers);449            var userPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.CurrentUser);450 451            Assert.Null(sysPolicies);452            Assert.NotNull(userPolicies);453 454            fixture.CompareTwoPolicies(userPolicies, fixture.CurrentUserPolicies);455        }456 457        [Fact, Priority(4)]458        public void PowerShellConfig_GetPowerShellPolicies_BothConfigFilesEmpty()459        {460            fixture.SetupConfigFile4();461            fixture.ForceReadingFromFile();462 463            var sysPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.AllUsers);464            var userPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.CurrentUser);465 466            Assert.Null(sysPolicies);467            Assert.Null(userPolicies);468        }469 470        [Fact, Priority(5)]471        public void PowerShellConfig_GetPowerShellPolicies_BothConfigFilesNotExist()472        {473            fixture.CleanupConfigFiles();474            fixture.ForceReadingFromFile();475 476            var sysPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.AllUsers);477            var userPolicies = PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.CurrentUser);478 479            Assert.Null(sysPolicies);480            Assert.Null(userPolicies);481        }482 483        [Fact, Priority(6)]484        public void Utils_GetPolicySetting_BothConfigFilesNotEmpty()485        {486            fixture.SetupConfigFile1();487            fixture.ForceReadingFromFile();488 489            ScriptExecution scriptExecution;490            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideOnlyConfig);491            fixture.CompareScriptExecution(scriptExecution, fixture.SystemWidePolicies.ScriptExecution);492 493            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserOnlyConfig);494            fixture.CompareScriptExecution(scriptExecution, fixture.CurrentUserPolicies.ScriptExecution);495 496            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideThenCurrentUserConfig);497            fixture.CompareScriptExecution(scriptExecution, fixture.SystemWidePolicies.ScriptExecution);498 499            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserThenSystemWideConfig);500            fixture.CompareScriptExecution(scriptExecution, fixture.CurrentUserPolicies.ScriptExecution);501 502            ScriptBlockLogging scriptBlockLogging;503            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideOnlyConfig);504            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.SystemWidePolicies.ScriptBlockLogging);505 506            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserOnlyConfig);507            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.CurrentUserPolicies.ScriptBlockLogging);508 509            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideThenCurrentUserConfig);510            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.SystemWidePolicies.ScriptBlockLogging);511 512            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserThenSystemWideConfig);513            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.CurrentUserPolicies.ScriptBlockLogging);514 515            ModuleLogging moduleLogging;516            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideOnlyConfig);517            fixture.CompareModuleLogging(moduleLogging, fixture.SystemWidePolicies.ModuleLogging);518 519            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserOnlyConfig);520            fixture.CompareModuleLogging(moduleLogging, fixture.CurrentUserPolicies.ModuleLogging);521 522            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideThenCurrentUserConfig);523            fixture.CompareModuleLogging(moduleLogging, fixture.SystemWidePolicies.ModuleLogging);524 525            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserThenSystemWideConfig);526            fixture.CompareModuleLogging(moduleLogging, fixture.CurrentUserPolicies.ModuleLogging);527 528            ProtectedEventLogging protectedEventLogging;529            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideOnlyConfig);530            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.SystemWidePolicies.ProtectedEventLogging);531 532            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserOnlyConfig);533            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.CurrentUserPolicies.ProtectedEventLogging);534 535            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideThenCurrentUserConfig);536            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.SystemWidePolicies.ProtectedEventLogging);537 538            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserThenSystemWideConfig);539            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.CurrentUserPolicies.ProtectedEventLogging);540 541            // The CurrentUser config doesn't contain any settings for 'Transcription', 'UpdatableHelp' and 'ConsoleSessionConfiguration'542            Transcription transcription;543            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideOnlyConfig);544            fixture.CompareTranscription(transcription, fixture.SystemWidePolicies.Transcription);545 546            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserOnlyConfig);547            fixture.CompareTranscription(transcription, null);548 549            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideThenCurrentUserConfig);550            fixture.CompareTranscription(transcription, fixture.SystemWidePolicies.Transcription);551 552            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserThenSystemWideConfig);553            fixture.CompareTranscription(transcription, fixture.SystemWidePolicies.Transcription);554 555            UpdatableHelp updatableHelp;556            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideOnlyConfig);557            fixture.CompareUpdatableHelp(updatableHelp, fixture.SystemWidePolicies.UpdatableHelp);558 559            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserOnlyConfig);560            fixture.CompareUpdatableHelp(updatableHelp, null);561 562            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideThenCurrentUserConfig);563            fixture.CompareUpdatableHelp(updatableHelp, fixture.SystemWidePolicies.UpdatableHelp);564 565            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserThenSystemWideConfig);566            fixture.CompareUpdatableHelp(updatableHelp, fixture.SystemWidePolicies.UpdatableHelp);567 568            ConsoleSessionConfiguration consoleSessionConfiguration;569            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideOnlyConfig);570            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, fixture.SystemWidePolicies.ConsoleSessionConfiguration);571 572            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserOnlyConfig);573            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);574 575            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideThenCurrentUserConfig);576            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, fixture.SystemWidePolicies.ConsoleSessionConfiguration);577 578            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserThenSystemWideConfig);579            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, fixture.SystemWidePolicies.ConsoleSessionConfiguration);580        }581 582        [Fact, Priority(7)]583        public void Utils_GetPolicySetting_EmptyUserConfig()584        {585            fixture.SetupConfigFile2();586            fixture.ForceReadingFromFile();587 588            // The CurrentUser config is empty589            ScriptExecution scriptExecution;590            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideOnlyConfig);591            fixture.CompareScriptExecution(scriptExecution, fixture.SystemWidePolicies.ScriptExecution);592 593            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserOnlyConfig);594            fixture.CompareScriptExecution(scriptExecution, null);595 596            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideThenCurrentUserConfig);597            fixture.CompareScriptExecution(scriptExecution, fixture.SystemWidePolicies.ScriptExecution);598 599            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserThenSystemWideConfig);600            fixture.CompareScriptExecution(scriptExecution, fixture.SystemWidePolicies.ScriptExecution);601 602            ScriptBlockLogging scriptBlockLogging;603            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideOnlyConfig);604            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.SystemWidePolicies.ScriptBlockLogging);605 606            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserOnlyConfig);607            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);608 609            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideThenCurrentUserConfig);610            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.SystemWidePolicies.ScriptBlockLogging);611 612            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserThenSystemWideConfig);613            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.SystemWidePolicies.ScriptBlockLogging);614 615            ModuleLogging moduleLogging;616            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideOnlyConfig);617            fixture.CompareModuleLogging(moduleLogging, fixture.SystemWidePolicies.ModuleLogging);618 619            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserOnlyConfig);620            fixture.CompareModuleLogging(moduleLogging, null);621 622            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideThenCurrentUserConfig);623            fixture.CompareModuleLogging(moduleLogging, fixture.SystemWidePolicies.ModuleLogging);624 625            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserThenSystemWideConfig);626            fixture.CompareModuleLogging(moduleLogging, fixture.SystemWidePolicies.ModuleLogging);627 628            ProtectedEventLogging protectedEventLogging;629            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideOnlyConfig);630            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.SystemWidePolicies.ProtectedEventLogging);631 632            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserOnlyConfig);633            fixture.CompareProtectedEventLogging(protectedEventLogging, null);634 635            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideThenCurrentUserConfig);636            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.SystemWidePolicies.ProtectedEventLogging);637 638            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserThenSystemWideConfig);639            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.SystemWidePolicies.ProtectedEventLogging);640 641            Transcription transcription;642            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideOnlyConfig);643            fixture.CompareTranscription(transcription, fixture.SystemWidePolicies.Transcription);644 645            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserOnlyConfig);646            fixture.CompareTranscription(transcription, null);647 648            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideThenCurrentUserConfig);649            fixture.CompareTranscription(transcription, fixture.SystemWidePolicies.Transcription);650 651            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserThenSystemWideConfig);652            fixture.CompareTranscription(transcription, fixture.SystemWidePolicies.Transcription);653 654            UpdatableHelp updatableHelp;655            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideOnlyConfig);656            fixture.CompareUpdatableHelp(updatableHelp, fixture.SystemWidePolicies.UpdatableHelp);657 658            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserOnlyConfig);659            fixture.CompareUpdatableHelp(updatableHelp, null);660 661            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideThenCurrentUserConfig);662            fixture.CompareUpdatableHelp(updatableHelp, fixture.SystemWidePolicies.UpdatableHelp);663 664            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserThenSystemWideConfig);665            fixture.CompareUpdatableHelp(updatableHelp, fixture.SystemWidePolicies.UpdatableHelp);666 667            ConsoleSessionConfiguration consoleSessionConfiguration;668            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideOnlyConfig);669            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, fixture.SystemWidePolicies.ConsoleSessionConfiguration);670 671            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserOnlyConfig);672            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);673 674            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideThenCurrentUserConfig);675            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, fixture.SystemWidePolicies.ConsoleSessionConfiguration);676 677            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserThenSystemWideConfig);678            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, fixture.SystemWidePolicies.ConsoleSessionConfiguration);679        }680 681        [Fact, Priority(8)]682        public void Utils_GetPolicySetting_EmptySystemConfig()683        {684            fixture.SetupConfigFile3();685            fixture.ForceReadingFromFile();686 687            // The SystemWide config is empty688            ScriptExecution scriptExecution;689            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideOnlyConfig);690            fixture.CompareScriptExecution(scriptExecution, null);691 692            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserOnlyConfig);693            fixture.CompareScriptExecution(scriptExecution, fixture.CurrentUserPolicies.ScriptExecution);694 695            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideThenCurrentUserConfig);696            fixture.CompareScriptExecution(scriptExecution, fixture.CurrentUserPolicies.ScriptExecution);697 698            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserThenSystemWideConfig);699            fixture.CompareScriptExecution(scriptExecution, fixture.CurrentUserPolicies.ScriptExecution);700 701            ScriptBlockLogging scriptBlockLogging;702            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideOnlyConfig);703            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);704 705            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserOnlyConfig);706            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.CurrentUserPolicies.ScriptBlockLogging);707 708            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideThenCurrentUserConfig);709            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.CurrentUserPolicies.ScriptBlockLogging);710 711            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserThenSystemWideConfig);712            fixture.CompareScriptBlockLogging(scriptBlockLogging, fixture.CurrentUserPolicies.ScriptBlockLogging);713 714            ModuleLogging moduleLogging;715            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideOnlyConfig);716            fixture.CompareModuleLogging(moduleLogging, null);717 718            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserOnlyConfig);719            fixture.CompareModuleLogging(moduleLogging, fixture.CurrentUserPolicies.ModuleLogging);720 721            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideThenCurrentUserConfig);722            fixture.CompareModuleLogging(moduleLogging, fixture.CurrentUserPolicies.ModuleLogging);723 724            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserThenSystemWideConfig);725            fixture.CompareModuleLogging(moduleLogging, fixture.CurrentUserPolicies.ModuleLogging);726 727            ProtectedEventLogging protectedEventLogging;728            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideOnlyConfig);729            fixture.CompareProtectedEventLogging(protectedEventLogging, null);730 731            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserOnlyConfig);732            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.CurrentUserPolicies.ProtectedEventLogging);733 734            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideThenCurrentUserConfig);735            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.CurrentUserPolicies.ProtectedEventLogging);736 737            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserThenSystemWideConfig);738            fixture.CompareProtectedEventLogging(protectedEventLogging, fixture.CurrentUserPolicies.ProtectedEventLogging);739 740            // The CurrentUser config doesn't contain any settings for 'Transcription', 'UpdatableHelp' and 'ConsoleSessionConfiguration'741            Transcription transcription;742            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideOnlyConfig);743            fixture.CompareTranscription(transcription, null);744 745            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserOnlyConfig);746            fixture.CompareTranscription(transcription, null);747 748            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideThenCurrentUserConfig);749            fixture.CompareTranscription(transcription, null);750 751            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserThenSystemWideConfig);752            fixture.CompareTranscription(transcription, null);753 754            UpdatableHelp updatableHelp;755            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideOnlyConfig);756            fixture.CompareUpdatableHelp(updatableHelp, null);757 758            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserOnlyConfig);759            fixture.CompareUpdatableHelp(updatableHelp, null);760 761            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideThenCurrentUserConfig);762            fixture.CompareUpdatableHelp(updatableHelp, null);763 764            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserThenSystemWideConfig);765            fixture.CompareUpdatableHelp(updatableHelp, null);766 767            ConsoleSessionConfiguration consoleSessionConfiguration;768            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideOnlyConfig);769            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);770 771            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserOnlyConfig);772            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);773 774            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideThenCurrentUserConfig);775            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);776 777            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserThenSystemWideConfig);778            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);779        }780 781        [Fact, Priority(9)]782        public void Utils_GetPolicySetting_BothConfigFilesEmpty()783        {784            fixture.SetupConfigFile4();785            fixture.ForceReadingFromFile();786 787            // Both config files are empty788            ScriptExecution scriptExecution;789            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideOnlyConfig);790            fixture.CompareScriptExecution(scriptExecution, null);791 792            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserOnlyConfig);793            fixture.CompareScriptExecution(scriptExecution, null);794 795            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideThenCurrentUserConfig);796            fixture.CompareScriptExecution(scriptExecution, null);797 798            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserThenSystemWideConfig);799            fixture.CompareScriptExecution(scriptExecution, null);800 801            ScriptBlockLogging scriptBlockLogging;802            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideOnlyConfig);803            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);804 805            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserOnlyConfig);806            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);807 808            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideThenCurrentUserConfig);809            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);810 811            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserThenSystemWideConfig);812            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);813 814            ModuleLogging moduleLogging;815            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideOnlyConfig);816            fixture.CompareModuleLogging(moduleLogging, null);817 818            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserOnlyConfig);819            fixture.CompareModuleLogging(moduleLogging, null);820 821            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideThenCurrentUserConfig);822            fixture.CompareModuleLogging(moduleLogging, null);823 824            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserThenSystemWideConfig);825            fixture.CompareModuleLogging(moduleLogging, null);826 827            ProtectedEventLogging protectedEventLogging;828            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideOnlyConfig);829            fixture.CompareProtectedEventLogging(protectedEventLogging, null);830 831            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserOnlyConfig);832            fixture.CompareProtectedEventLogging(protectedEventLogging, null);833 834            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideThenCurrentUserConfig);835            fixture.CompareProtectedEventLogging(protectedEventLogging, null);836 837            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserThenSystemWideConfig);838            fixture.CompareProtectedEventLogging(protectedEventLogging, null);839 840            // The CurrentUser config doesn't contain any settings for 'Transcription', 'UpdatableHelp' and 'ConsoleSessionConfiguration'841            Transcription transcription;842            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideOnlyConfig);843            fixture.CompareTranscription(transcription, null);844 845            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserOnlyConfig);846            fixture.CompareTranscription(transcription, null);847 848            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideThenCurrentUserConfig);849            fixture.CompareTranscription(transcription, null);850 851            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserThenSystemWideConfig);852            fixture.CompareTranscription(transcription, null);853 854            UpdatableHelp updatableHelp;855            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideOnlyConfig);856            fixture.CompareUpdatableHelp(updatableHelp, null);857 858            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserOnlyConfig);859            fixture.CompareUpdatableHelp(updatableHelp, null);860 861            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideThenCurrentUserConfig);862            fixture.CompareUpdatableHelp(updatableHelp, null);863 864            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserThenSystemWideConfig);865            fixture.CompareUpdatableHelp(updatableHelp, null);866 867            ConsoleSessionConfiguration consoleSessionConfiguration;868            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideOnlyConfig);869            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);870 871            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserOnlyConfig);872            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);873 874            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideThenCurrentUserConfig);875            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);876 877            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserThenSystemWideConfig);878            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);879        }880 881        [Fact, Priority(10)]882        public void Utils_GetPolicySetting_BothConfigFilesNotExist()883        {884            fixture.CleanupConfigFiles();885            fixture.ForceReadingFromFile();886 887            // Both config files don't exist888            ScriptExecution scriptExecution;889            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideOnlyConfig);890            fixture.CompareScriptExecution(scriptExecution, null);891 892            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserOnlyConfig);893            fixture.CompareScriptExecution(scriptExecution, null);894 895            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.SystemWideThenCurrentUserConfig);896            fixture.CompareScriptExecution(scriptExecution, null);897 898            scriptExecution = Utils.GetPolicySetting<ScriptExecution>(Utils.CurrentUserThenSystemWideConfig);899            fixture.CompareScriptExecution(scriptExecution, null);900 901            ScriptBlockLogging scriptBlockLogging;902            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideOnlyConfig);903            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);904 905            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserOnlyConfig);906            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);907 908            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.SystemWideThenCurrentUserConfig);909            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);910 911            scriptBlockLogging = Utils.GetPolicySetting<ScriptBlockLogging>(Utils.CurrentUserThenSystemWideConfig);912            fixture.CompareScriptBlockLogging(scriptBlockLogging, null);913 914            ModuleLogging moduleLogging;915            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideOnlyConfig);916            fixture.CompareModuleLogging(moduleLogging, null);917 918            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserOnlyConfig);919            fixture.CompareModuleLogging(moduleLogging, null);920 921            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.SystemWideThenCurrentUserConfig);922            fixture.CompareModuleLogging(moduleLogging, null);923 924            moduleLogging = Utils.GetPolicySetting<ModuleLogging>(Utils.CurrentUserThenSystemWideConfig);925            fixture.CompareModuleLogging(moduleLogging, null);926 927            ProtectedEventLogging protectedEventLogging;928            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideOnlyConfig);929            fixture.CompareProtectedEventLogging(protectedEventLogging, null);930 931            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserOnlyConfig);932            fixture.CompareProtectedEventLogging(protectedEventLogging, null);933 934            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.SystemWideThenCurrentUserConfig);935            fixture.CompareProtectedEventLogging(protectedEventLogging, null);936 937            protectedEventLogging = Utils.GetPolicySetting<ProtectedEventLogging>(Utils.CurrentUserThenSystemWideConfig);938            fixture.CompareProtectedEventLogging(protectedEventLogging, null);939 940            // The CurrentUser config doesn't contain any settings for 'Transcription', 'UpdatableHelp' and 'ConsoleSessionConfiguration'941            Transcription transcription;942            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideOnlyConfig);943            fixture.CompareTranscription(transcription, null);944 945            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserOnlyConfig);946            fixture.CompareTranscription(transcription, null);947 948            transcription = Utils.GetPolicySetting<Transcription>(Utils.SystemWideThenCurrentUserConfig);949            fixture.CompareTranscription(transcription, null);950 951            transcription = Utils.GetPolicySetting<Transcription>(Utils.CurrentUserThenSystemWideConfig);952            fixture.CompareTranscription(transcription, null);953 954            UpdatableHelp updatableHelp;955            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideOnlyConfig);956            fixture.CompareUpdatableHelp(updatableHelp, null);957 958            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserOnlyConfig);959            fixture.CompareUpdatableHelp(updatableHelp, null);960 961            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.SystemWideThenCurrentUserConfig);962            fixture.CompareUpdatableHelp(updatableHelp, null);963 964            updatableHelp = Utils.GetPolicySetting<UpdatableHelp>(Utils.CurrentUserThenSystemWideConfig);965            fixture.CompareUpdatableHelp(updatableHelp, null);966 967            ConsoleSessionConfiguration consoleSessionConfiguration;968            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideOnlyConfig);969            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);970 971            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserOnlyConfig);972            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);973 974            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.SystemWideThenCurrentUserConfig);975            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);976 977            consoleSessionConfiguration = Utils.GetPolicySetting<ConsoleSessionConfiguration>(Utils.CurrentUserThenSystemWideConfig);978            fixture.CompareConsoleSessionConfiguration(consoleSessionConfiguration, null);979        }980 981        [Fact, Priority(11)]982        public void PowerShellConfig_GetPowerShellPolicies_BrokenSystemConfig()983        {984            fixture.SetupConfigFile5();985            fixture.ForceReadingFromFile();986 987            Assert.Throws<System.Management.Automation.PSInvalidOperationException>(() => PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.AllUsers));988            Assert.Throws<System.Management.Automation.PSInvalidOperationException>(() => PowerShellConfig.Instance.GetPowerShellPolicies(ConfigScope.CurrentUser));989        }990    }991}992