![限制注册表写入权限并不能阻止手动更改在启动 Win8.1 时恢复为默认值](https://linux22.com/image/1424664/%E9%99%90%E5%88%B6%E6%B3%A8%E5%86%8C%E8%A1%A8%E5%86%99%E5%85%A5%E6%9D%83%E9%99%90%E5%B9%B6%E4%B8%8D%E8%83%BD%E9%98%BB%E6%AD%A2%E6%89%8B%E5%8A%A8%E6%9B%B4%E6%94%B9%E5%9C%A8%E5%90%AF%E5%8A%A8%20Win8.1%20%E6%97%B6%E6%81%A2%E5%A4%8D%E4%B8%BA%E9%BB%98%E8%AE%A4%E5%80%BC.png)
这可能有助于理解我正在尝试做的事情,以便将我的问题具体化,所以开始吧。
我正在尝试破解主板上的 Realtek 音频插孔,以便将前置音频流从后面板的绿色和黑色插孔中路由出去。Realtek 驱动程序或 Windows 本身确实搞乱了四声道音频和扬声器填充,因此这是在我的设置上从两个插孔中获取音乐的唯一方法。
要做到这一点(基于来自网络的信息,例如这里)只需要更改与某些注册表项关联的值。我按照注册表兔子洞
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\00XX\Settings\DrvYYYY_DevType_YYYY_SSYYYYYYYY
并寻找
"Pin14" = Front speakers (rear green)
"Pin15" = Rear speakers (rear black)
Pin15 必须更改为
"04 00 00 00" = Front speakers
在两个输出插孔上获取相同的前置扬声器信号。
好酷,对吧?只是理论上...我可以进行这些更改,但是当我重新启动以使它们生效时,我在 regedit 中看到这些值已切换回默认值。
我发现了一个假定的解决方案,即转到[...]\00XX\GlobalSettings
并更改ResetAudioFgOnStart
为值 0。但我的系统没有成功,重新启动时仍然会刷新默认引脚值。
因此,我想到了一个主意来改变注册表和密钥权限,以防止重新启动时值恢复为默认值。
在[...]\00XX
密钥上,我禁用了继承,但将默认继承权限转换为此密钥及其子对象(和子密钥)的显式权限,以便我可以操纵它们的访问权限。我限制了写访问权限,为先前启用继承时列出的所有主体保留了读访问权限(即系统、创建者所有者、所有应用程序包、用户、管理员...)。我只为管理员保留了写访问权限,因为它是所有者,而且我显然需要将权限更改为我想要的权限。我还选择了“替换所有子对象权限...”以确保这些更改是递归的。
但是,无论出于什么原因,重新启动后默认值仍会加载,从而阻止我的更改生效。也许我应该在更改值之后但在重新启动之前撤销管理员的写访问权限(我很确定我也尝试过……但那是几天前的事了,现在我正在摆弄它)?
为什么我对此密钥树的权限所做的更改没有阻止值在重新启动时恢复?
有什么想法可以在注册表中锁定我想要的值吗?
编辑:上传了我的注册表设置的屏幕截图(是的,我涂白了我的用户名,国家安全局正在监视 :p),在手动更改我正在处理的注册表值之后。这显示了所有拒绝权限(针对系统、创建者所有者、所有应用程序包,每个都将其锁定在设置值、创建子项、通知、创建链接、删除、写入 dac、写入所有者操作之外),不仅阻止写入访问,还锁定除管理员组之外所有人的权限。不过,重新启动后,该值会重置为默认值。也许管理员组是罪魁祸首,我对此表示怀疑,因为弹出窗口应该授予管理员操作的访问权限,所以我怀疑这是一种系统进程。
好吧,我不能发布图片,因为我的声誉没有 10,呃...不管怎样,愚蠢的互联网,不像这篇文章听起来的那样,我完全无知