-1

我们有一个.NET平台调用本机代码,特别是我们调用LoadLibrary()。这段代码已经存在了一段时间,但是一位新用户注意到,当以运行失败的Windows Server 2008 R2计算机的终端服务用户身份运行时(显然是在调用LoadLibrary时)。这种情况发生在以标准用户身份运行时,而不是以可疑的管理员身份运行时发生。在Windows Server 2003计算机上运行时也可以工作。当从Windows Server 2008上的标准用户以终端服务运行时,LoadLibrary失败时调用

现在我们已经测试了在Windows Server 2008 R2机器上运行并且之前没有任何问题。

我很怀疑UAC在这里玩。我们让他们使用Process Monitor,并且当使用控制代码IOCTL_MOUNTDEV_QUERY_DEVICE_NAME调用DeviceIOControl()时,我注意到INVALID PARAMETER的结果。这也让我怀疑映射的驱动器,尽管在我的机器上的映射驱动器上运行相同的代码工作得很好。

任何人都有什么建议,尽量不要站起来类似的机器,但我们能够在室内复制这个机会的机会看起来很渺茫。

+0

他们真的是指“以标准用户身份运行”还是他们的意思是“以管理用户身份运行但没有提升”?如果他们确实意味着标准用户,UAC不参与。 (你是否以标准用户的身份尝试过Server 2003?)如果可以将诊断添加到应用程序中,那么仔细检查传递给LoadLibrary()的路径以及它返回的错误代码会很有用。 – 2015-01-22 03:30:12

回答

0

对于发现自己处于类似情况的其他人,用户可以通过更改其软件限制组策略来解决问题。

相关问题