我正在尝试创建一个程序来更改远程计算机上的注册表项值,以阻止/允许用户个性化他们的锁屏图像。似乎我需要创建的关键是HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization
,其名称为NoChangingLockScreen
。我可以使用.reg文件轻松完成此操作并将任何更改合并到他们的注册表中(我计划创建一个Windows服务来监视文件中的更改),虽然看起来我甚至无法修改HKEY_LOCAL_MACHINE
类中的任何键。请注意:
RegistryKey myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Policies\Microsoft\Windows", true);
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))
{
...
}