
我在 Windows 7 x64 電腦上遇到一個非常奇怪的問題。我會盡力解釋,所以它不能很短。預先非常感謝您的耐心等待。
所以Win 7 x64。我在管理員權限帳戶下工作,並且啟用了 UAC。發生的情況是,當程式需要提升來執行任務時 - 並且它知道如何請求它,沒有古老的可執行檔 - 如果它從 -user- temp 資料夾運行,它只是不請求它,然後失敗。
我想這還不清楚,所以讓我們逐步看看當我執行需要從任何目錄提升的程式時會發生什麼。如果我嘗試啟動,例如,TrueCrypt,我執行它,它會自動檢測到它需要提升,而它沒有,所以它要求它(UAC提示,單擊是,程式正常運行) 。
現在讓我們來看看從 temp 運行的程式。我將選擇一個 NSIS 安裝程序,例如 Firefox 安裝程式。我執行它,它自動解壓縮到temp,然後從temp啟動setup.exe。這個 setup.exe 執行檔應該會要求提升權限,但它沒有,只是嘗試在目前上下文中執行,然後進程就會終止。這就像在檢查海拔的那一刻,決定它已經存在,但事實並非如此。
但是,如果我直接使用管理權限啟動 NSIS 安裝程序,它會解壓縮到相同的臨時資料夾,然後 setup.exe 繼承提升並運行正常。
我必須補充的另一個奇怪的說明是,自動更新服務(例如 Mozilla 服務或 Google Chrome 服務)也無法安裝更新。這更奇怪,因為這些服務以管理權限運行,據我所知,它們下載更新,然後以管理權限啟動安裝程式。但發生的情況與第一種情況相同,服務啟動 setup.exe 並自動進程終止。
作業系統已經安裝一年了,至今運作正常;當然,我不介意重新安裝我的工作站,但我很想了解這裡發生了什麼。這個問題在正常的一天開始發生,我最近沒有安裝任何奇怪的東西。
答案1
好吧,我終於發現發生了什麼事,在我的臨時目錄下,「使用者」群組的一些權限已經(難以理解地)遺失了。讀寫權限仍然未受影響,但「遍歷目錄」和「執行」權限被停用。這導致嘗試提升另一個可執行檔的進程崩潰。
現在我試著找出是什麼改變了我的權限(也許是惡意的),但這是另一個故事了。