В интересах Даффмана и всех остальных мы нашли нестандартное решение этой проблемы.
Если вы посмотрите на задания агента SQL Server для каждого агента репликации, свойства заданий покажут параметры командной строки, необходимые для распространителя (distrib.exe), средства чтения журнала (logread.exe) и моментального снимка (snapshot.exe) ) агентов.
Я написал небольшую службу Windows на C #, которая запускает эти агенты с этими параметрами командной строки и настроила эту службу для запуска под учетной записью сетевой службы. Это работает нормально.
Чтобы это сработало, вы должны удалить задания из SQL - агента сервера, запускающего агенты репликации. Кроме того, когда агенты запускаются таким образом, инструменты графического интерфейса, которые управляют агентами (например, запускают синхронизацию из монитора репликации), больше не работают, поэтому я добавил некоторые функции в службу Windows, чтобы заменить их.
Но все остальное (предупреждения, отчеты и т.д.) кажется нормальным. Мы тестировали эту конфигурацию в течение нескольких месяцев и не обнаружили в ней никаких проблем.
Обратите внимание, если вы не хотите писать службу Windows, вы можете сделать то же самое с командным файлом и запустить его с помощью запланированное задание или srvany (именно так мы его впервые протестировали).