WMI存储库中的文件关联错误


1

Windows 7机器,据我所知,系统唯一的奇怪之处就是我在下面提到的。

我处理了很多没有扩展名的文本文件,所以不久前,我将没有扩展名的文件与Notepad ++ x64相关联。好吧,我需要与x64不兼容的插件功能,最终将其删除。

我已经尝试发布新的命令来关联文件而没有扩展,并且在x86路径下安装了32位版本,但是尽管如此,每当我尝试双击该文件时,它指向常规的“程序文件” “路径。我已经多次搜索整个注册表,并且找不到不存在的路径,如果我在常规程序文件路径下制作N ++的第二个副本它工作得很好,但是我只想使用一份。

经过额外的工作,我想我可能已经找到了问题的根源。它似乎是我的WMI存储库(.. \ WBEM \ Repository中的OBJECTS.DATA文件)中的错误条目。不幸的是,我完全没有做到这一点,我从MS读到的所有东西告诉我只能尝试重建它作为一个绝对的最后手段,因为这只是一个糟糕的文件关联,我不太愿意这样做。

有没有办法修复WMI存储库中的文件关联?


基本的想法是 用这个 教程,但创建自己的.reg文件,以恢复/删除您没有文件扩展名的所有文件的关联。
Ramhound

我删除了密钥。在HKEY_CLASSES_ROOT(这是我首先将它关联起来的东西)下,但这不起作用。我开始认为还有另一个存储这种关联的地方。
Bartleby the Scrivener

我假设你已经搜索过了 ../Program Files/N+ Installation directory here 在你的注册表?
Ramhound

1
我希望你不是字面上搜索“N +”因为那不是可执行文件的名称。您正在搜索可执行文件的名称,对吧?
Ramhound

好吧,我想我已经找到了它的位置,但我不知道如何修复它。它似乎停留在WMI存储库的某个地方,而且我现在并不是非常舒服。我正在寻找修复它的方法而不重建它。
Bartleby the Scrivener

Answers:


0

在进入关联问题之前,正如我在评论中提到的那样,WMI是一个红色的鲱鱼,WMI代表 Windows Management Instrumentation 它是一个用于获取系统信息的API,它允许以SQL样式查询信息,例如我已经将它用于 获取有关正在运行的进程 。关于 WMI存储库

WMI存储库“%windir%System32 \ Wbem \ Repository”是数据库   存储WMI类的元信息和定义;在某些情况下,存储库也存储静态类数据。

所以我看不出你的问题可能与WMI存储库有关的方式,因为它不用于文件关联或其他资源管理器配置,也许在存储库中有一些关于Notepad ++的信息,但它与此无关。

关于你的问题,将程序与没有扩展名的文件相关联的“标准”方法是使用 . (点)延伸下 HKEY_CLASSES_ROOT,有两种变化,“旧”方式:

[HKEY_CLASSES_ROOT\.]
@="Notepad++Test"

[HKEY_CLASSES_ROOT\Notepad++Test]
@="Notepad++ Test"
[HKEY_CLASSES_ROOT\Notepad++Test\shell\open\command]
@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" %1"

以及在Windows XP中引入的“新”方式(或者在Windows 2000中,我不确定):

[HKEY_CLASSES_ROOT\.\OpenWithProgids]
"Notepad++Test"=""

[HKEY_CLASSES_ROOT\Notepad++Test]
@="Notepad++ Test"
[HKEY_CLASSES_ROOT\Notepad++Test\shell\open\command]
@="\"C:\\Program Files\\Notepad++\\notepad++.exe\" %1"

Notepad++Test 是我如何调用我的测试中使用的密钥,该密钥可以具有任何名称,具体取决于谁创建密钥以及如何

检查你有什么价值,你也可以检查 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.\OpenWithProgids 这是Explorer的每个用户扩展名及其相关程序的列表(我认为这个键的优先级低于另一个,但我不确定)。

如果你没有 HKEY_CLASSES_ROOT\. 创建密钥或者如果它具有正确的值,您可能正在使用非标准方式关联文件,可能使用错误配置的第三方程序。


唉,我不仅专门检查了有问题的密钥,而且我在整个注册表中搜索了有问题的文本而且它不在那里。我认为它是WMI存储库的原因是因为我搜索了我的整个磁盘以寻找它正在寻找的路径,并且它只在两个地方找到:1。WMI存储库2. Superfetch除此之外,我认为它的原因是WMI存储库是因为禁用Superfetch时问题仍然存在。我想它可能是文件定位器专业版无法找到的东西,但如果是这样的话,那我就更糟了。
Bartleby the Scrivener

正如我所说,可能存储库中有记事本的信息,但AFAIK它与Explorer配置无关,在SO架构中处于不同的级别。也许你可以找到正在使用的东西 Process Explorer ,这个程序拦截并记录所有注册表和文件系统活动,问题是它捕获 所有 所以即使使用过滤器,也许你需要挖掘很多东西。如果您对此感兴趣,我将使用作者的基本步骤和博客条目更新答案。
Alberto Martinez
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.