使用C#通过注册表值设置GPO

时间:2017-04-12 19:43:41

标签: c# windows registry gpo dword

我尝试通过组策略User Configuration\Administrative Templates\System\Removable Storage Access\All Removable Storage classes: Deny all access

限制对可移动存储设备的访问

根据Group Policy Settings Reference for Windows and Windows Server相应的注册表(和路径)在HKCU\Software\Policies\Microsoft\Windows\RemovableStorageDevices!Deny_All

中将DWORD设置为1(启用)或0(禁用)

到目前为止一切顺利。当我尝试通过组策略编辑器更改这些设置时,每个方法都可以正常工作。即使插入可移动存储设备,策略也会立即生效。

当我尝试通过注册表本身或使用自编写的C#程序更改值时,它不起作用,策略保持启用(或禁用)。

我的C#代码

        using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Policies\\Microsoft\\Windows\\RemovableStorageDevices", true))
        {
            if (key != null)
            {
                key.SetValue("Deny_All", "0", RegistryValueKind.DWord);
            }
        }

        Console.ReadKey();

即使我尝试通过gpupdate /force更新所有政策。恰恰相反,无论我是通过手工还是通过我的程序设置旧值,都会在注册表中设置旧值。我做错了什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

找到解决方案:我刚刚使用meziantouHow to Programmatically Set GPO to Not Configured or Disabled的代码