Windows-7

未以本地管理員身份執行時,程序文件(x86)在 Win7x64 上未正確解釋

  • November 7, 2015

問候,

我正在遷移到 x64 環境(Windows XP SP3 到 Windows 7 X64)的 32 位軟體程序遇到一個特殊問題。該應用程序的問題是電子登記/直到我們的端點銷售辦事處。

該應用程序位於:

"C:\Program Files(x86)\Q_Kassa"

我們已經為將軟體作為外殼執行的使用者配置了所有相關訪問權限,包括應用程序所需文件夾的所有相關讀/寫權限。但是,只要我們不“以管理員身份執行”或者只要載入程序的使用者不是本地管理員組的成員,應用程序就不會載入並拋出找不到文件的錯誤位於:

C:\Program Files\Q_Kassa\FileName

問題是,所有相關的配置數據、配置文件和註冊資訊都會告訴應用程序它的數據在 Program Files (x86) 目錄中。出於某種原因,當應用程序使用“以管理員身份執行”選項執行時,或者在使用者位於本地管理員組中時執行時,Windows 似乎將它需要作為應用程序文件夾獲取的文件夾誤解了。

總而言之:

As local admin / Run-as-admin option used:

the application is fed info from C:\Program Files(x86)\Q_KASSA\
--> as it should be.

When run as a normal user the application tries to get it's info from 
   C:\Program Files\Q_Kassa
--> wrong folder

任何人都可以解釋為什麼應用程序顯然決定了使用哪個 Program Files 目錄的執行級別?

問候,

它可能只是一個遺留問題和%PROGRAMFILES%混淆。最簡單的解決方法是使用符號連結,如下所示:

mklink /j "C:\Program Files(x86)\Q_Kassa" "C:\Program Files\Q_Kassa\"

這樣,無論程序“認為”它真的在哪裡,它都會起作用。另外,請注意,如果它必須寫入此程序文件文件夾,則需要提升權限才能使其正常工作。Windows 確實會重定向到“VirtualRoot”文件夾,但充其量只是一團糟。

引用自:https://serverfault.com/questions/630874