Windows .exe 文件关联已损坏 - 每个程序(包括 cmd、regedit、notepad、taskmgr)都会启动 Excel - 不是重复

Ex *_*ris 6 file-association microsoft-excel windows-10

我已经阅读了有关修复损坏的 .EXE 文件关联的所有 SU 帖子,还阅读了Microsoft 文章

所有这些都假设您仍然可以启动某些程序,例如 cmd.exe、记事本、Regedit 或 taskmgr。在我的系统上,我无法直接启动任何 .exe(某些文件关联仍然有效),它们都会启动 Excel 并尝试在 Excel 中打开 .exe 文件。

这一切都是在我添加指向 Excel 的 .tsv(制表符分隔值)文件关联时开始的。我的任务栏或桌面中可执行文件的每个图标都更改为 Excel 图标。

就我而言,我(认为我)很幸运,因为我有一个打开的文本编辑器,并且能够创建Microsoft 文章中描述的 .reg 文件。

.reg 文件合并时没有错误。然而,重新启动后,我看到的是一个打开的 Excel,其中有很多很多弹出窗口,包括诸如

The file format and extension of 'SystemPropertiesProtection.exe' don't match.
The file could be corrupted or unsafe. Unless you trust its source, don't open it.
Run Code Online (Sandbox Code Playgroud)

或者

Microsoft Office has identified a potential security concern.
Warning: The digital signature is valid but the signature is from a publisher whom you have not yet chosen to trust
File Path: C:\Program Files\TechSmith\Snagit 2021\SnagitEditor.exe
Run Code Online (Sandbox Code Playgroud)

本质上每个启动程序都会有一个弹出窗口。

现在,当我尝试执行任何程序(下面有几个例外)时,我会得到相同的行为 - Excel 启动并抱怨输入文件。

有一些例外:

  • 我无法直接运行 Firefox。不过,我为我的 Wifi LAN 运行 Ubiquiti Unifi 控制器。该程序确实启动了,并且有一个按钮可以在浏览器中打开 Wifi 仪表板。单击该按钮可以正确启动 Firefox。

  • 我的后台 1Password 应用程序在启动时启动。

  • Sysinternals Process Explorer 在引导时启动。

  • 似乎有一些文件关联不依赖于 .exe 关联来启动其程序。

    • .txt -> 文本板
    • .pdf -> Acrobat Reader

Process Explorer 有一个“文件/运行...”选项,但尝试使用它来启动任何内容只会启动 Excel。

尝试通过 Ctrl-Shift-ESC 或 Ctrl+Alt+Del 启动 Taskmgr.exe 并选择任务管理器只会启动 Excel。

我启动到恢复命令行并检查了我的用户的注册表配置单元。Microsoft 文档 ( ) 中给出的密钥FileExts不存在。CLASSES 注册表树条目.exe看起来并不异常。看来文件关联可能不再存储在注册表中。

是否有任何用户可访问的方式来启动 Windows 10 中的程序,直接执行程序而不是通过文件关联?谁能建议如何在不通过文件关联的情况下打开 regedit.exe?

Ex *_*ris 5

我能够解决这个问题。

关键是我可以打开任何程序,但只能通过文件关联,而不是直接打开。所以我终于意识到我可以创建一个包含该文件的 .bat 文件start cmd.exe,并从其桌面图标启动该文件(以管理员身份),从而给我一个提升的命令提示符。

从那里我可以启动注册表,我发现的内容清楚地暗示了关联管理中的一个巨大错误。

.tsv->Excel昨天创建了该关联,因为我正在处理一堆制表符分隔值文件。我使用了桌面上文件中的“打开方式”上下文菜单项.tsv,并从候选列表中选择了 Excel。

当我这样做时,Windows 创建了注册表项:

[HKEY_CLASSES_ROOT\.tsv_auto_file]
[HKEY_CLASSES_ROOT\.tsv_auto_file\shell]
[HKEY_CLASSES_ROOT\.tsv_auto_file\shell\open]
[HKEY_CLASSES_ROOT\.tsv_auto_file\shell\open\command]
@="\"C:\\Program Files\\Microsoft Office\\root\\Office16\\EXCEL.EXE\" \"%1\""

[HKEY_CLASSES_ROOT\.tsv]
@=".tsv_auto_file"
"PerceivedType"="text"
Run Code Online (Sandbox Code Playgroud)

看起来很正常。但由于某种未知的原因,它也改变了关联.exe

[HKEY_CLASSES_ROOT\.exe]
@=".tsv_auto_file"
"ContentType"="application/x-msdownload"
Run Code Online (Sandbox Code Playgroud)

呃????

通过搜索默认值为“.tsv_auto_file”的 .exe 关联并将其更改回“exefile”,可以轻松修复此问题。在我的特定情况下,我必须重置的键是

[HKEY_CLASSES_ROOT\.exe]
@="exefile"
[HKEY_CURRENT_USER\Software\Classes\.exe]
@="exefile"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\OpenWithProgids]
"exefile"=hex:
Run Code Online (Sandbox Code Playgroud)

我还删除了 .tsv/.tsv_auto_file 关联,因为我不再需要它。重新启动后,我的系统恢复正常运行。