有意破坏性能计数器注册表

3
我想制造这样的情况,让.Net抛出这个异常:
InvalidOperationException: Cannot load Counter Name data because an invalid index '' was read from the registry.
例如,在这个问题中Cannot load Counter Name data because an invalid index -Exception 我想这么做的原因是我的应用程序的一小部分用户会遇到这个问题,我想检测到这种情况并显示一个对话框,以帮助用户通过运行lodctr来修复它。(不幸的是,简单地修复调用代码不是一个选项,因为异常是在第三方库中抛出的)为了验证这个过程,我需要能够遇到这个问题。
不用说,我想以一种使我的计算机仍然可用且可以通过使用lodctr轻松恢复的方式破坏性能计数器注册表。我不想砖化我的机器。

1
你的链接中 Pablissimo 给出的错误原因解释对你不起作用吗? - TnTinMn
我不知道怎么错过了这个。在弄清楚空白行的位置是否重要后,我会尝试添加一些空白行。 - Zachary Burns
@TnTinMn 尝试编辑此值(即使不进行任何更改),结果RegEdit会出现两个对话框:“REG_MULTI_SZ类型的数据不能包含空字符串。注册表编辑器将删除所有找到的空字符串。”然后是“无法编辑计数器:写入值的新内容时发生错误。” - Zachary Burns
1个回答

0

我曾因不同的原因不得不解决相同的问题。Pablissimo的方法和其他类似的方法从未对我起作用。这是我的方法,它总是让我的计算机保持完全可用。

在您要破坏计数器的机器上,发出恢复命令:lodctr /r或任何其他命令。

一旦它开始重建计数器,请等待几秒钟,然后在它完成之前突然切断电源。这是一个强制关闭。就像这样,“砰!”没有电源。

时间并不是非常重要,但还是有些轻微的要求。如果太早了,它将无法破坏性能计数器。如果太晚了,它将成功完成重建。


2
这可能是正确的,但我不愿意通过接受它作为答案来认可它。我甚至不敢自己尝试。 - Zachary Burns
很好。在我的情况下,我们没有需要挂起的特殊计数器,并且破坏它的成本是重新映像机器,这对受影响的单位是可以接受的。话虽如此,我从未在数百次执行中遇到过任何损害(除了破坏计数器)。我在Windows 10上完成了我的操作。 - Travis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接