Beispiel #1
0
        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);
                    }
                }
            }
        }
Beispiel #2
0
        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);
            }
        }