Есть терминальный сервер на котором хранятся файлы PDF. Ответственный сотрудник раз в день обновляет некоторые файлы pdf. Другие сотрудники открывают эти файлы по шаре или напрямую в сессии удаленного рабочего стола. Возникает конфликт: ответственный сотрудник не может записать новую версию файла, если кто-то из сотрудников забыл закрыть Acrobat Reader с этим документом. Права на запись есть только у ответственного сотрудника, у остальных на чтение.
Какое может быть решение, чтобы ответственный сотрудник мог обновлять документы без участия системного администратора, который убивает процессы Acrobat Reader других пользователей?
сотрудники открывают эти файлы по шаре или напрямую в сессии
Когда по шаре, то всё проще. Не требуется убивать процесс, достаточно принудительно закрыть открытый файл средствами администрирования шары. Можно попробова делать это по расписанию, например, каждые 10 минут (надо погуглить подходящий powershell-скрипт). При этом Acrobat Reader у пользователя не закроется.
С убийством процессов чуть сложнее. Нужно либо делегировать это обновляльщику (не уверен, что убийство процессов делегируется), либо по расписанию же от имени администратора, но с проверкой какого-то флага, который может поднять обновляльщик (например, он удаляет какой-то флаговый файл и после этого убиваются процессы и файл заново создаётся).
Понимаю, что это костыли и любопытно увидеть менее костыльные варианты.
Единственное, что приходит в голову - хранить документы за разную дату в разных папках, и организовать ротацию, например, не хранить данные старше нескольких дней. Ответственный выкладывает документ в папку с сегодняшней датой, в имени документа тоже указана дата, пользователи сами переключатся на новые файлы, и закрепить время обновления, например, до 9-30. В указанной Вами схеме все варианты получаются разной степени костыльности - отключение сеансов, завершение процессов.