當我以管理員身份運行程式時會發生什麼?

當我以管理員身份運行程式時會發生什麼?

我正在嘗試運行網路共用(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

這是預期的(儘管不常見)行為。

當您從網路共用執行程式時,可以透過多種方式完成。

  1. 共用映射到網路磁碟機:例如g:->\\server\share
  2. 透過共享直接存取共享:\\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

  1. 在登錄編輯器中,找到並點選以下註冊表​​子項目:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

  2. 在右窗格中,右鍵單擊“新建”,然後按一下“DWORD(32 位元)值”。

  3. 將新的註冊表項命名為EnableLinkedConnections
  4. 雙擊EnableLinkedConnections註冊表項。
  5. 在「編輯 DWORD 值」對話方塊中,在「值資料」欄位中鍵入 1,然後按一下「確定」。
  6. 退出註冊表編輯器,然後重新啟動電腦。

答案3

某些安裝程式需要透過 訪問NT AUTHORITY\SYSTEM,但網路磁碟機是特定於使用者的。EnableLinkedConnections在這種情況下沒有幫助。

刪除現有的網路磁碟機並在系統層級重新映射它。為此,請使用操作:net.exe和參數:(use z: \\host\share\提供密碼,如果需要)建立排程任務,並將執行此任務的帳戶變更為NT AUTHORITY\SYSTEM/PERSISTENT:yes似乎不起作用,因此您需要安排它在啟動時運行

運作後,整個系統將看到網路磁碟機。在 Windows 資源管理器中,它將顯示為已斷開連接,但它仍然可以工作。

相關內容