У меня есть служба С#, которая использует FileSystemWatcher и вызывает связанные команды (например, пакетные файлы). Один из командных файлов должен убить работающую программу, скопировать некоторые файлы и снова запустить программу. Taskkill используется, чтобы избавиться от программы.
Пакетный файл вызывается, но команда taskkill никогда не уничтожает процесс (например, notepad.exe, открытый пользователем). Тот же пакетный файл работает, если я просто запускаю его, когда я вошел в систему как этот пользователь.
Я пытался запустить службу под учетной записью пользователя, вошедшего в систему (той же, у которой открыт блокнот), но безрезультатно — по умолчанию используется локальная система.
Я не могу жестко закодировать имя пользователя (однако я думаю о конфигурации для олицетворения, но немного не хочу хранить пароли пользователей).
Какие-либо предложения?