private bool OverrideWithGroupPolicyTypeTypesAndGenerateWmiObjectsForPolicyType(ExceptionTypeData exceptionType, ExceptionPolicyData parentPolicy, bool readGroupPolicies, IRegistryKey machineKey, IRegistryKey userKey, bool generateWmiObjects, ICollection <ConfigurationSetting> wmiSettings) { if (readGroupPolicies) { IRegistryKey policyKey = machineKey != null ? machineKey : userKey; if (policyKey != null) { if (policyKey.IsPolicyKey && !policyKey.GetBoolValue(PolicyValueName).Value) { return(false); } try { PostHandlingAction?postHandlingActionOverride = policyKey.GetEnumValue <PostHandlingAction>(PolicyTypePostHandlingActionPropertyName); exceptionType.PostHandlingAction = postHandlingActionOverride.Value; } catch (RegistryAccessException ex) { LogExceptionWhileOverriding(ex); } } } if (generateWmiObjects) { ExceptionTypeSetting wmiSetting = new ExceptionTypeSetting(exceptionType.Name, exceptionType.Type.AssemblyQualifiedName, exceptionType.PostHandlingAction.ToString()); wmiSetting.Policy = parentPolicy.Name; wmiSettings.Add(wmiSetting); } List <ConfigurationSetting> handlerSettings = new List <ConfigurationSetting>(exceptionType.ExceptionHandlers.Count); OverrideWithGroupPoliciesAndGenerateWmiObjectsForElementCollection(exceptionType.ExceptionHandlers, PolicyTypeHandlersPropertyName, readGroupPolicies, machineKey, userKey, generateWmiObjects, handlerSettings); int i = 0; foreach (ExceptionHandlerSetting setting in handlerSettings) { setting.Policy = parentPolicy.Name; setting.ExceptionType = exceptionType.Name; setting.Order = i++; wmiSettings.Add(setting); } return(true); }
public static void GenerateExceptionTypeWmiObjects(ExceptionTypeData exceptionType, ExceptionPolicyData parentPolicy, ICollection <ConfigurationSetting> wmiSettings) { ExceptionTypeSetting wmiSetting = new ExceptionTypeSetting(exceptionType, exceptionType.Name, exceptionType.Type.AssemblyQualifiedName, exceptionType.PostHandlingAction.ToString()); wmiSetting.Policy = parentPolicy.Name; wmiSettings.Add(wmiSetting); }