![注册表项一段时间后消失](https://linux22.com/image/1588102/%E6%B3%A8%E5%86%8C%E8%A1%A8%E9%A1%B9%E4%B8%80%E6%AE%B5%E6%97%B6%E9%97%B4%E5%90%8E%E6%B6%88%E5%A4%B1.png)
我的一位用户过去在打印 Office 2012 文档时遇到过问题。尝试打印后,她收到无法找到打印机的消息。显然,这个问题的原因是 Office 2012,它在检测到问题后会阻止打印。
我在以下链接中找到了解决方案:https://support.microsoft.com/en-us/help/983035/how-to-prevent-office-2010-from-disabling-printers。我在 HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\General 下添加了注册表项“DisablePrintFeaturesOnCrash”,并将其设置为 0,这似乎解决了她遇到的问题。
几个月后,我接到她的电话,告诉我问题又出现了。检查注册表后,我发现注册表项不见了。我重新添加了它,她又可以打印了。
然而几天后,注册表项又消失了!她自己无法删除该项(她无法访问注册表),而且我的同事们已经好几个星期没有碰过那台电脑了。
什么可能删除该密钥?有没有办法找出删除该密钥的进程?是否有可能防止删除密钥?
谢谢!
答案1
您必须启用审核才能跟踪注册表的更改,但您必须指定要审核的对象。要在注册表中执行此操作,请右键单击某个键,选择权限、高级、审核 -> 然后在此处添加您要审核的对象以及您要跟踪的对象所采取的操作。然后,您将在 Windows 日志 -> 安全下的事件查看器中看到对象对键所做的指定更改。
由于您正在尝试跟踪您不知道的对象的更改(注册表项被删除的原因),因此最好检查该项的权限,看看谁有权删除它。如果其中没有您没有预料到的权限,那么我怀疑是应用程序本身的问题。注册表项可以在应用程序更新后更新或重新生成,具体取决于应用程序更新与注册表交互的方式(在这种情况下,我假设在删除自定义项时重新生成)。我不建议修改这些项的权限,因为您可能会收到应用程序错误。
因此,如果您注意到用户在第一的尝试在某一天打印,登录组策略导入自定义注册表项就足够了。但是,如果您注意到问题可能突然发生,即用户可以打印多次,然后突然停止工作 - 那么不幸的是,您需要手动干预。我建议让用户访问导入他们自己的注册表项(通过 .reg 文件),但如果注册表项正在重新生成,那么她的权限也将被删除,使该建议不可靠。这些仅针对您陈述的症状提出。