![](/img/trans.png)
[英]Windows Explorer and Reparse Point Files: keep Explorer from opening my files
[英]Windows 10 user unable to execute AppExecLink reparse point .exe files
我的 Windows 10 安裝在運行一些通過 Microsoft Store 安裝的應用程序時出現問題,以及運行在桌面上右鍵單擊時顯示在菜單中的 nvidia 控制面板項時出現問題。 當您從開始菜單中選擇應用程序時,使用 nvidia 控制面板的右鍵單擊菜單項,或轉到C:\\Users\\user1\\AppData\\Local\\Microsoft\\WindowsApps
並雙擊其中的 .exe 文件之一,你會得到這樣的錯誤:
[窗口標題]
C:\\Users\\user1\\AppData\\Local\\Microsoft\\WindowsApps\\Microsoft.WinDbg_8wekyb3d8bbwe\\WinDbgX.exe
[內容] Windows 無法訪問指定的設備、路徑或文件。 您可能沒有訪問該項目的適當權限。
[好的]
同時,導航到安裝目錄中的實際 .exe 並雙擊它即可。 這包括由 nvidia 右鍵單擊菜單項調用的可執行文件。
開始菜單中的非“WindowsApps”項目正常工作。
我已將其范圍縮小到某種無法運行AppExecLink
的情況(也稱為“重新分析點”或“執行別名”)。 我使用從 Microsoft Store 安裝的 WinDbg 創建了一個最小的測試用例,並使用了這篇博文中的Set-ExecutionAlias
。
下面我列出了一些 .exe 文件。 使用dir
查看時,它們是 0 kb 文件。 它們類似於硬鏈接,但稱為AppExecLink
。 它們不是實際的可執行文件 - 它們只是指向最終 .exe 的位置以及如何執行它。 不要對此感到驚訝。 這些不是硬鏈接、符號鏈接、.lnk 文件或連接點。 它們是AppExecLink
。 上面提到的博客文章很好地介紹了執行別名又名AppExecLink
是什么。
您可以在下面看到,只需將AppType
從Desktop
更改為UWP1
就足以修復錯誤:應用程序執行時沒有錯誤,就像我雙擊安裝文件夾中的 .exe 文件一樣。 但是,Microsoft Store 安裝該程序時AppType
設置為Desktop
,這會導致這種損壞的行為。 因此,要么它不應該將其設置為Desktop
而這就是壞掉的地方,要么Desktop
應該可以工作而這就是壞掉的地方。
所有文件在Get-Acl
具有完全相同的輸出,因此這不是能夠執行文件C:\\Users\\user1\\AppData\\Local\\Microsoft\\WindowsApps\\Microsoft.WinDbg_8wekyb3d8bbwe\\WinDbgX.exe
和其他文件的問題喜歡它。
如何解決此行為? 為什么我沒有運行Desktop
應用程序類型的權限? 什么可能阻止此用戶執行受影響的AppExecLink
?
以下是Get-ExecutionAlias
輸出(它們都是相同的,除了最后一個將AppType
從Desktop
更改為UWP1
):
Created by Microsoft Store, broken:
PS C:\users\user1\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe> Get-ExecutionAlias .\WinDbgX.exe
Version : 3
PackageName : Microsoft.WinDbg_8wekyb3d8bbwe
EntryPoint : Microsoft.WinDbg_8wekyb3d8bbwe!Microsoft.WinDbg
Target : C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2001.2001.0_neutral__8wekyb3d8bbwe\DbgX.Shell.exe
AppType : Desktop
Flags : 48
Tag : APPEXECLINK
IsMicrosoft : True
IsNameSurrogate : False
IsTagDirectory : False
Created by me, broken:
PS C:\users\user1\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe> Get-ExecutionAlias .\windbg5.exe
Version : 3
PackageName : Microsoft.WinDbg_8wekyb3d8bbwe
EntryPoint : Microsoft.WinDbg_8wekyb3d8bbwe!Microsoft.WinDbg
Target : C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2001.2001.0_neutral__8wekyb3d8bbwe\DbgX.Shell.exe
AppType : Desktop
Flags : 48
Tag : APPEXECLINK
IsMicrosoft : True
IsNameSurrogate : False
IsTagDirectory : False
Created by me, works:
PS C:\users\user1\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe> Get-ExecutionAlias .\windbg6.exe
Version : 3
PackageName : Microsoft.WinDbg_8wekyb3d8bbwe
EntryPoint : Microsoft.WinDbg_8wekyb3d8bbwe!Microsoft.WinDbg
Target : C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2001.2001.0_neutral__8wekyb3d8bbwe\DbgX.Shell.exe
AppType : UWP1
Flags : 49
Tag : APPEXECLINK
IsMicrosoft : True
IsNameSurrogate : False
IsTagDirectory : False
Get-Acl
輸出,供您仔細檢查(它們都是相同的):
PS C:\users\user1\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe> Get-Acl .\WinDbgX.exe | fl
Path : Microsoft.PowerShell.Core\FileSystem::C:\users\user1\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe\WinDbgX.exe
Owner : BUILTIN\Administrators
Group : GAMING\user1
Access : NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
GAMING\user1 Allow FullControl
GAMING\TempAdmin2 Allow FullControl
Audit :
Sddl : O:BAG:S-1-5-21-1777315463-2770185252-2942861946-1001D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;FA;;;S-1-5-21-1777315463-2770185252-2942861946-1001)(A;ID;FA;;;S-1-5-21-1777315463-2770185252-2942861946-1006)
PS C:\users\user1\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe> Get-Acl .\windbg5.exe | fl
Path : Microsoft.PowerShell.Core\FileSystem::C:\users\user1\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe\windbg5.exe
Owner : BUILTIN\Administrators
Group : GAMING\user1
Access : NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
GAMING\user1 Allow FullControl
GAMING\TempAdmin2 Allow FullControl
Audit :
Sddl : O:BAG:S-1-5-21-1777315463-2770185252-2942861946-1001D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;FA;;;S-1-5-21-1777315463-2770185252-2942861946-1001)(A;ID;FA;;;S-1-5-21-1777315463-2770185252-2942861946-1006)
PS C:\users\user1\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe> Get-Acl .\windbg6.exe | fl
Path : Microsoft.PowerShell.Core\FileSystem::C:\users\user1\AppData\Local\Microsoft\WindowsApps\Microsoft.WinDbg_8wekyb3d8bbwe\windbg6.exe
Owner : BUILTIN\Administrators
Group : GAMING\user1
Access : NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
GAMING\user1 Allow FullControl
GAMING\TempAdmin2 Allow FullControl
Audit :
Sddl : O:BAG:S-1-5-21-1777315463-2770185252-2942861946-1001D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;FA;;;S-1-5-21-1777315463-2770185252-2942861946-1001)(A;ID;FA;;;S-1-5-21-1777315463-2770185252-2942861946-1006)
您可以嘗試修復您的 APPX 程序。 以管理員身份打開 PowerShell 並運行以下行。
Get-AppxPackage -allusers | foreach {Add-AppxPackage -register "$($_.InstallLocation)\appxmanifest.xml" -DisableDevelopmentMode}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.