首页 > 解决方案 > VB6 应用程序的执行不一致。某些用户成功,运行时错误 481 Invalid Picture for others

问题描述

所以这个是一个doozy。我在运行 Windows Server 2019(我们的应用程序管理器门户)的虚拟服务器上的 VB6 Windows 应用程序出现不一致的行为。

此应用程序根据用户通过活动目录组的安全权限列出了用户有权访问的所有 Windows 应用程序。

我的一位同事是我们基础架构团队的一员,对此我进行了测试。他是这个名为 RDS 用户(远程桌面系统用户)的 Windows 组的成员。我也是此 Windows 组的一员,并且我也是此服务器上的本地管理员,以便安装将在此应用程序管理器门户中列出的应用程序。

所以这是我的同事在启动这个 VB 6 应用程序时的结果:

应用程序管理器门户结果 - 其他用户权限

这是我启动它时的结果:

应用程序管理器门户结果-我的用户权限-无效图片错误

我尝试的一种方法是清除AppData\Local\Temp我的用户目录下的 Temp 目录。然后我收到了这个错误信息:

应用程序管理器门户结果-我的用户权限-无法从 MSCOMCTL.OCX 加载控件

以下是我在我的基础架构团队的同事的帮助下尝试解决此问题但未成功的步骤:

我只为我的同事和我自己运行了进程监视器来启动可执行文件,我目前正在查看结果。我目前没有看到任何突出的东西。

我的问题是向小组提出的:还有什么我需要看的我上面没有列出的吗?

谢谢你。

2020 年 1 月 22 日更新:

通过进程监视器日志,我注意到注册表中有一些有趣的东西,用于我的 AppMan.exe(应用程序管理器门户可执行文件)执行和我同事的 AppMan.exe 执行。

我在 Process Monitor 中放置了一个过滤器,其中 Process Name 等于 AppMan.exe。

对我来说,一些注册表项属于 HKCU,而我的同事在 HKU 下有一些注册表项。

这又是在同一个虚拟服务器上。

这是一个例子。

我的(应用程序导致错误):

RegOpenKey - HKCU\Software\Classes\Local 设置

我同事的(应用程序正在运行):

RegOpenKey - HKU\S-1-5-21-535134994-3874261535-4188770651-24660_Classes\Local Settings

我在注册表中搜索“S-1-5-21-535134994-3874261535-4188770651-24660”,但找不到一个条目。

我是这个虚拟服务器的本地管理员。

试图弄清楚是否与此有关。

2020 年 1 月 27 日更新:

在查看 VB 6 应用程序后,我发现这个错误被抛出,因为 INI 文件引用了我可以通过当前不在此服务器上的 AD 组访问的应用程序。哇!!我以为我快疯了。此提交可以关闭。

标签: vb6windows-server-2019

解决方案


一旦我收到此错误 - Windows Server 2003 上的 vb6 应用程序中的“无效图片”,当 C: 驱动器有零字节可用时。在我清理了一些空间后,错误消失了。


推荐阅读