我有一个有趣的问题,已经处理了两天了。
我有一个在 Windows 7 上运行的应用程序 connectship warehouse shipping v 6.5。我已经联系过客户服务部门,但遗憾的是他们除了让每个人都成为该机器的本地管理员之外,找不到其他解决方案。
当我启动位于“C:\Program Files (x86)\ConnectShip\Progistics\CSW\ShippingApplication\CSWShipping.exe”的 CSWShipping.exe 时
- 如果我以域用户身份登录,我会收到运行时错误 -2146233036(80131534)
- 如果我以域管理员身份登录,我会收到运行时错误 -2146233036(80131534)
- 如果我将域用户设置为本地用户,我会收到运行时错误 -2146233036(80131534)
- 如果我将域用户设置为本地管理员,它就可以正常工作。
有趣的是,当我以域管理员身份安装该应用程序时,我能够启动它并且它运行良好,我用来安装该应用程序的用户帐户不是机器上的本地管理员,但该应用程序仍然可以正常运行。
我尝试过但没有效果的方法:
- 将应用程序和文件夹的权限更改为“所有人”并删除继承。
- 更改了所有用户的兼容模式
- 将所有用户的权限级别更改为“以管理员身份运行此程序”。
- 右键以管理员身份运行
当我尝试运行该应用程序时,我没有收到任何 UAC 警告
事件查看器中没有错误。
我很茫然,真的不想安装一堆第三方软件。
答案1
您可以使用 Microsoft 提供的特殊诊断工具“进程监视器”来监视程序的运行情况,从而确定哪些地方出了问题。
https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx
我使用 Mark Russinovich 的这个工具大概有 12-15 年了,当时我正在尝试运行需要在 NTFS 和 Windows 2000、XP 以及带有 UAC 的 Windows 7 上获得过多文件/注册表权限的旧版 Windows 3.1/95/98 程序,以解决用户权限问题。
但请注意,此工具在启动时会从每个正在运行的系统程序中喷出数千行状态数据,因此在实际运行您想要测试的程序之前,查看列表并排除它检测到的几乎所有其他您不关心的正在运行的程序通常会有所帮助。
参考,我在 SysInternals 上发布的关于此问题的帖子: http://forum.sysinternals.com/exclude-all-processes-currently-in-filter_topic27483.html
困难不在于排除过度,以致于您丢失了您告诉它从其他正在运行的系统程序中抑制的消息,而是不被数千行不相关的日志数据淹没。
明确忽略所有“SUCCESS”消息也可能有助于您更轻松地找到错误。虽然这是一个非常先进的工具,但它报告的某些内容并不是真正严重的错误,例如“REPARSE”或“END OF FILE”,因此很难解读它的输出,如果您无法弄清楚如何读取它的日志输出,它可能根本帮不上忙。
答案2
我按照以下步骤解决了这个问题
关闭 UAC
在 AD 中创建标准用户 shippinguser
在 shippingpc 上将域/shippinguser 添加为本地管理员
将运输用户密码添加到存储的凭证中。
创建的快捷方式:
%systemroot%\system32\runas.exe /user:domain\shippinguser /savecred "C:\Program Files (x86)\ConnectShip\Progistics\CSW\ShippingApplication\CSWShipping.exe"
将所有用户桌面的快捷方式放在 mm-dt-ship01 上
该程序将使用 domain\shippinguser 在计算机上以本地管理员身份启动 CSWShipping.exe
当用户双击快捷方式时,可能会提示输入密码。
用户只需输入一次密码。
我已将 GPO 设置为拒绝该用户在域下的任何 PC 上本地登录。
答案3
我从未听说过这款软件,所以我在谷歌上搜索了一下。不幸的是,根据我的经验,有些专门针对特定市场的软件包……不好用。
实际的错误消息是 .NET 框架错误:类型的初始化程序引发了异常。 这可能是很多原因,但我猜这些用户没有访问所需程序集的权限(但本地管理员有)。
您的选择是查找相关文件并授予运行应用程序的用户对这些文件的权限,或向该用户授予本地管理员权限。由于您将目录授予了所有人,因此应用程序可能会将某些内容放入 Windows(或其他目录)中。
祝你好运!