我正在嘗試運行網路共用(Linux CIFS 伺服器)上的 Win7 exe。此共用是由非管理員建立的(請參閱Windows 7 存取共用資料夾的問題)。我可以讀取、編輯和寫入包含 exe 的資料夾中的檔案。我可以讀取(即複製)該exe。
但當我嘗試跑步exe,透過雙擊並確定 UAC 對話框,或右鍵單擊“以管理員身份運行”,我得到:
Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.
我必須將exe複製到本機磁碟才能運行嗎?
我按照(尚未接受的答案)的食譜進行操作如何從網路共享運行 EXE?,但這似乎只授予讀取權限,而不授予 exe 權限。
(遠相關:無法從網路磁碟機執行 .exe.)
答案1
這是預期的(儘管不常見)行為。
當您從網路共用執行程式時,可以透過多種方式完成。
- 共用映射到網路磁碟機:例如
g:
->\\server\share
- 透過共享直接存取共享:
\\server\share
當您以管理員身份執行程式時,第一個可能已經導致問題,我將在下面解釋這一點。
當我以管理員身份運行程式時會發生什麼?
當您以管理員身份執行程式時,將建立一個新環境並載入管理員設定檔。儘管它將使用您的使用者擁有的權限,但它顯然也具有管理員使用者的附加權限。因此,不會建立任何到網路磁碟機的映射,因此您的管理員使用者的設定檔中不存在任何其他網路映射,因此 g: 不存在。
如果共享的安全設定非常嚴格,管理員使用者也可能沒有權限。
如何排查並克服問題?
顯然,您可以在本地複製文件並然後運行它,但假設您不想這樣做。
您可以先以管理員身分啟動命令提示字元。從那裡輸入以下命令:
net use g: \\server\share
更換驅動器和共享,使它們與您現有的共享相匹配。
只要此命令提示字元視窗打開,您就可以以管理員身份執行可執行文件,並且它可以保證正常工作。
如果您的使用者沒有 的權限\\server\share
,則網路使用將失敗並顯示錯誤,準確地告訴您這一點,以便您知道問題出在哪裡。
如果權限良好,您也可以透過\\server\share
以管理員身分執行可執行檔來存取執行檔。這消除了首先在不同環境中具有網路共享的要求。
答案2
您必須將值 EnableLinkedConnections 設定為 1,如本知識庫文章所述:
當 UAC 在 Windows 中設定為「提示輸入憑證」時,無法透過提升的提示使用映射磁碟機
https://support.microsoft.com/en-us/kb/3035277
在登錄編輯器中,找到並點選以下註冊表子項目:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
在右窗格中,右鍵單擊“新建”,然後按一下“DWORD(32 位元)值”。
- 將新的註冊表項命名為
EnableLinkedConnections
。- 雙擊
EnableLinkedConnections
註冊表項。- 在「編輯 DWORD 值」對話方塊中,在「值資料」欄位中鍵入 1,然後按一下「確定」。
- 退出註冊表編輯器,然後重新啟動電腦。
答案3
某些安裝程式需要透過 訪問NT AUTHORITY\SYSTEM
,但網路磁碟機是特定於使用者的。EnableLinkedConnections
在這種情況下沒有幫助。
刪除現有的網路磁碟機並在系統層級重新映射它。為此,請使用操作:net.exe
和參數:(use z: \\host\share\
提供密碼,如果需要)建立排程任務,並將執行此任務的帳戶變更為NT AUTHORITY\SYSTEM
。/PERSISTENT:yes
似乎不起作用,因此您需要安排它在啟動時運行
運作後,整個系統將看到網路磁碟機。在 Windows 資源管理器中,它將顯示為已斷開連接,但它仍然可以工作。