我已经阅读了所有关于修复损坏的 .EXE 文件关联的 SU 帖子,并且还阅读了微软文章。
所有这些都假设您仍然可以启动某些程序,例如 cmd.exe、Notepad、Regedit 或 taskmgr。在我的系统上,我无法直接启动任何 .exe(某些文件关联仍然有效),它们都启动 Excel 并尝试在 Excel 中打开 .exe 文件。
这一切都始于我为指向 Excel 的 .tsv(制表符分隔值)添加文件关联。我的任务栏或桌面上的每个可执行文件图标都变成了 Excel 图标。
就我而言,我(自认为)很幸运,因为我有一个打开的文本编辑器,并且能够创建 .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.
或者
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
基本上每个启动程序都会弹出一个窗口。
现在,当我尝试执行任何程序(下面有几个例外)时,我都会得到相同的行为——Excel 启动并抱怨输入文件。
但也有一些例外:
我无法直接运行 Firefox。但是,我为我的 Wifi LAN 运行了 Ubiquiti Unifi 控制器。该程序确实启动了,并且它有一个按钮可以在浏览器中打开 Wifi 仪表板。单击该按钮即可正确启动 Firefox。
我的后台 1Password 应用程序在启动时启动。
Sysinternals Process Explorer 在启动时启动。
似乎一些文件关联并不依赖 .exe 关联来启动其程序。
- .txt->文本板
- .pdf-> Acrobat 阅读器
Process Explorer 有一个文件/运行...选项,但尝试使用它来启动任何内容只会启动 Excel。
尝试通过 Ctrl-Shift-ESC 或 Ctrl+Alt+Del 启动 Taskmgr.exe 并选择任务管理器只会启动 Excel。
我启动了恢复命令行并检查了我的用户的注册表配置单元。Microsoft 文档 ( FileExts
) 中给出的密钥不存在。CLASSES 注册表树条目看起来.exe
并没有什么异常。文件关联似乎不再存储在注册表中。
是否有任何用户可访问的方式在 Windows 10 中启动程序,直接执行该程序而不是通过文件关联?有人可以建议如何在不经过文件关联的情况下打开 regedit.exe 吗?
答案1
我能够解决这个问题。
关键是我可以打开任何程序,但只能通过文件关联,而不能直接打开。所以我最终意识到我可以创建一个包含该程序的 .bat 文件start cmd.exe
,然后从其桌面图标启动该程序(以管理员身份),从而获得提升的命令提示符。
从那里我可以启动 regedit,我发现的内容清楚地暗示了关联管理中存在一个巨大的错误。
我.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"
这看起来很正常。但出于某种未知的原因,它也改变了.exe
[HKEY_CLASSES_ROOT\.exe]
@=".tsv_auto_file"
"ContentType"="application/x-msdownload"
咦????
这个问题很容易解决,只需搜索默认值为“.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:
我还删除了 .tsv/.tsv_auto_file 关联,因为我不再需要它了。重启后,我的系统恢复正常运行。
答案2
好的,如果您可以创建并合并.reg
文件,请按照以下步骤操作:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Launch\Command]
@="\"%1\""
然后导航到“C:\Windwows\Regedit.exe”(通过文本板如果您无法打开探索者窗口),右键单击并选择Launch
。
如果成功,首先检查此密钥:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe
如果名为UserChoice
存在,则删除它。然后检查香港注册处:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.exe]
@="exefile"
"Content Type"="application/x-msdownload"
[HKEY_CLASSES_ROOT\.exe\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"
[HKEY_CLASSES_ROOT\exefile]
@="Application"
"EditFlags"=hex:38,07,00,00
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\
00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,\
32,00,5c,00,73,00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,\
00,2c,00,2d,00,31,00,30,00,31,00,35,00,36,00,00,00
[HKEY_CLASSES_ROOT\exefile\DefaultIcon]
@="%1"
[HKEY_CLASSES_ROOT\exefile\shell]
[HKEY_CLASSES_ROOT\exefile\shell\open]
"EditFlags"=hex:00,00,00,00
[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"
"IsolatedCommand"="\"%1\" %*"
[HKEY_CLASSES_ROOT\exefile\shell\runas]
"HasLUAShield"=""
[HKEY_CLASSES_ROOT\exefile\shell\runas\command]
@="\"%1\" %*"
"IsolatedCommand"="\"%1\" %*"
[HKEY_CLASSES_ROOT\exefile\shell\runasuser]
@="@shell32.dll,-50944"
"Extended"=""
"SuppressionPolicyEx"="{F211AA05-D4DF-4370-A2A0-9F19C09756A7}"
[HKEY_CLASSES_ROOT\exefile\shell\runasuser\command]
"DelegateExecute"="{ea72d00e-4960-42fa-ba92-7792a7944c1d}"
[HKEY_CLASSES_ROOT\exefile\shellex]
[HKEY_CLASSES_ROOT\exefile\shellex\ContextMenuHandlers]
@="Compatibility"
[HKEY_CLASSES_ROOT\exefile\shellex\ContextMenuHandlers\Compatibility]
@="{1d27f844-3a1f-4410-85ac-14651078412d}"
[HKEY_CLASSES_ROOT\exefile\shellex\ContextMenuHandlers\PintoStartScreen]
@="{470C0EBD-5D73-4d58-9CED-E91E22E23282}"
[HKEY_CLASSES_ROOT\exefile\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers]
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers\ShimLayer Property Page]
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"
答案3
这对我有用。我使用了 .bat 文件技巧打开 cmd.exe。以管理员身份运行。
首先尝试恢复,但没有恢复点。在 cmd 中输入 rstrui.exe。
所以现在我输入了“systemreset --factoryreset”> 在 cmd 中输入 > 选择保留我的文件.. 只需重置 windows。这很麻烦,因为它卸载了我所有的应用程序,但它让 windows 再次工作。