我正在尝试制作一个程序,以更改远程计算机上的注册表项值,以阻止/允许用户个性化其锁定屏幕图像。看来我需要创建的密钥是在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization
上,名称为NoChangingLockScreen
。
我可以轻松地通过.reg文件执行此操作,并将所有更改合并到其注册表中(我计划创建Windows服务来监视文件中的更改),尽管似乎我什至无法修改HKEY_LOCAL_MACHINE
内的任何键类。
请注意:
我发现很少有其他人遇到权限问题的文档
RegistryKey myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Policies\Microsoft\Windows", true);
答案 0 :(得分:0)
Registry.ClassesRoot
用于HKEY_CLASSES_ROOT
。您需要像这样使用Registry.LocalMachine
字段:
using (var registryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Policies\Microsoft\Windows", writable: true))
{
...
}
还请注意,这是用于本地注册表访问。如果要打开远程注册表,则需要使用另一种方法:
using (var remoteBaseKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "RemoteMachineName"))
using (var registryKey = remoteBaseKey.OpenSubKey(@"SOFTWARE\Policies\Microsoft\Windows", writable: true))
{
...
}