В 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
Монитор процессов использует Хуки API для перехвата вызовов доступа к файлам / реестру к API. Он регистрирует их, а затем передает в API. Так же работает большинство антивирусов и руткитов.
Больше информации: http://www.codeproject.com/Articles/2082/API-hooking-revealed