protected override void ProcessRecord() { Functions.CheckAdmin(); if (!string.IsNullOrEmpty(ImportFilePath)) { Class.GPO.GroupPolicy groupPolicy = DataSerializer.Deserialize <Class.GPO.GroupPolicy>(ImportFilePath); if (!string.IsNullOrEmpty(TargetPolFile)) { if (groupPolicy.Machine != null && groupPolicy.Machine.Count > 0) { Class.GPO.PolFile pol = new Class.GPO.PolFile(); foreach (Class.GPO.GroupPolicyObject gpo in groupPolicy.Machine) { pol.Entries[gpo.Path + "\\" + gpo.Name] = gpo.ConvertToPolEntry(); } if (!Directory.Exists(Path.GetDirectoryName(TargetPolFile))) { Directory.CreateDirectory(Path.GetDirectoryName(TargetPolFile)); } pol.Save(TargetPolFile); } } else { if (!IgnoreMachine && groupPolicy.Machine != null && groupPolicy.Machine.Count > 0) { Class.GPO.PolFile pol = new Class.GPO.PolFile(); foreach (Class.GPO.GroupPolicyObject gpo in groupPolicy.Machine) { pol.Entries[gpo.Path + "\\" + gpo.Name] = gpo.ConvertToPolEntry(); } if (!Directory.Exists(Path.GetDirectoryName(Class.GPO.Item.MACHINE_POL_PATH))) { Directory.CreateDirectory(Path.GetDirectoryName(Class.GPO.Item.MACHINE_POL_PATH)); } pol.Save(Class.GPO.Item.MACHINE_POL_PATH); } if (!IgnoreUser && groupPolicy.User != null && groupPolicy.User.Count > 0) { Class.GPO.PolFile pol = new Class.GPO.PolFile(); foreach (Class.GPO.GroupPolicyObject gpo in groupPolicy.User) { pol.Entries[gpo.Path + "\\" + gpo.Name] = gpo.ConvertToPolEntry(); } if (!Directory.Exists(Path.GetDirectoryName(Class.GPO.Item.USER_POL_PATH))) { Directory.CreateDirectory(Path.GetDirectoryName(Class.GPO.Item.USER_POL_PATH)); } pol.Save(Class.GPO.Item.USER_POL_PATH); } } } }
protected override void ProcessRecord() { Functions.CheckAdmin(); if ((this.GroupPolicyObject == null || this.GroupPolicyObject.Length == 0) && !string.IsNullOrEmpty(RegistryPath) && !string.IsNullOrEmpty(RegistryName) && !string.IsNullOrEmpty(RegistryType) && !string.IsNullOrEmpty(RegistryValue)) { this.GroupPolicyObject = new Class.GPO.GroupPolicyObject[1] { new Class.GPO.GroupPolicyObject() { Path = RegistryPath, Name = RegistryName, Type = RegistryType, Value = RegistryValue, } }; } if (!string.IsNullOrEmpty(TargetPolFile)) { Class.GPO.PolFile pol = Class.GPO.PolFile.Create(TargetPolFile); foreach (Class.GPO.GroupPolicyObject gpo in this.GroupPolicyObject) { pol.SetValue(gpo.ConvertToPolEntry()); } if (!Directory.Exists(Path.GetDirectoryName(TargetPolFile))) { Directory.CreateDirectory(Path.GetDirectoryName(TargetPolFile)); } pol.Save(TargetPolFile); } else if (Machine) { Class.GPO.PolFile pol = Class.GPO.PolFile.Create(Class.GPO.Item.MACHINE_POL_PATH); foreach (Class.GPO.GroupPolicyObject gpo in this.GroupPolicyObject) { pol.SetValue(gpo.ConvertToPolEntry()); } if (!Directory.Exists(Path.GetDirectoryName(Class.GPO.Item.MACHINE_POL_PATH))) { Directory.CreateDirectory(Path.GetDirectoryName(Class.GPO.Item.MACHINE_POL_PATH)); } pol.Save(Class.GPO.Item.MACHINE_POL_PATH); } else if (User) { Class.GPO.PolFile pol = Class.GPO.PolFile.Create(Class.GPO.Item.USER_POL_PATH); foreach (Class.GPO.GroupPolicyObject gpo in this.GroupPolicyObject) { pol.SetValue(gpo.ConvertToPolEntry()); } if (!Directory.Exists(Path.GetDirectoryName(Class.GPO.Item.USER_POL_PATH))) { Directory.CreateDirectory(Path.GetDirectoryName(Class.GPO.Item.USER_POL_PATH)); } pol.Save(Class.GPO.Item.USER_POL_PATH); } }