ShellRunAs阻止读取EXE配置文件



我正在使用ShellRunAs工具来启动.NET应用程序。此.NET应用程序使用应用程序配置文件。

当我尝试通过ShellRunAs运行应用程序时,无论我使用什么凭据,应用程序似乎都找不到它的配置文件。

我使用Process Monitor查看了失败的文件访问,使用ShellRunAs似乎在某种程度上导致.NET查找附加的EXE.config路径,而不是完整的EXE.config路径。

例如,当我正常启动应用程序时,我看到的读取成功

c: \程序文件(x86)\我的公司\我的product\MyLongApplicationName.exe.config

但当我通过ShellRunAs启动时,我会看到的"名称未找到"条目

c: \program files(x86)\我的公司\我的产品\MyLong~1.exe.config

我是不是遗漏了什么?有办法解决这个问题吗?

这似乎是ShellRunAs和GetShortPathName Win32 API使用中的一个错误。

此处提供详细信息:http://forum.sysinternals.com/83-style-paths-for-modules-when-using-shellrunas_topic16246.html

不幸的是,我唯一的解决办法是使用8.3命名方案复制exe.config文件。

修改NTFS注册表设置没有任何影响。

最新更新