当不以本地管理员身份运行时,Program Files(x86)在 Win7x64 上无法正确解释

当不以本地管理员身份运行时,Program Files(x86)在 Win7x64 上无法正确解释

问候,

我在将 32 位软件程序迁移到 x64 环境(Windows XP SP3 迁移到 Windows 7 X64)时遇到了一个特殊问题。该应用程序是我们终端销售办事处的电子收银机/收银机。

该应用程序位于:

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

我们已为将以 shell 形式运行软件的用户配置了所有相关访问权限,包括应用程序所需的文件夹的所有相关读/写权限。但是,只要我们不“以管理员身份运行”,或者只要加载程序的用户不是本地管理员组的成员,应用程序就不会加载,并抛出无法找到位于以下位置的文件的错误:

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 目录?

问候,

答案1

这可能是遗留问题和%PROGRAMFILES%混淆。最简单的解决方法是使用符号链接,如下所示:

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

这样,无论程序“认为”它实际上在哪里,它都会工作。另外,请注意,如果它必须到此程序文件文件夹,您需要提升权限才能正常工作。Windows 确实会重定向到“VirtualRoot”文件夹,但这最多只能说是混乱。

相关内容