运行终端服务的 Windows Server 2012 已安装客户端应用程序。服务器部分位于另一个 Windows Server 2012 上。
该客户端应用程序是一个旧的应用程序,基于 dBase。
问题是,该应用程序无法使用客户端计算机的扩展 MAPI 创建电子邮件。
当您尝试创建电子邮件时,临时文件会保存在位于服务器主机上的共享文件夹中。当 Outlook(或任何其他电子邮件客户端)尝试附加 PDF 时,应用程序会显示错误消息“文件访问期间发生错误”。因此,该消息来自应用程序,而不是电子邮件客户端。
因此,我们自然而然地认为这是一个权限问题,并从 sysinternals 启动进程监视器。问题是。您现在可以发送电子邮件了。一旦您在 procmon 中禁用日志记录,下次尝试发送电子邮件时就会收到错误消息。
这在其他环境中有效,比如 XP/Vista/Win7 -> Server2003/2008 它只发生在 Server 2012 -> Server 2012 我怀疑 SMB3 与此有关。
但问题是,当您使用 procmon 启用日志记录时实际上会发生什么?因为无论 procmon 做什么 - 这都是我想要用作解决方法的方法。
编辑:哦,Win8 -> Server2012 也会出现这种情况
答案1
进程监视器用途API 挂钩拦截对 API 的文件/注册表访问调用。它会记录这些调用,然后将其传递给 API。这也是大多数防病毒软件和 rootkit 的工作方式。
更多信息:http://www.codeproject.com/Articles/2082/API-hooking-revealed