у меня есть исполняемый файл .NET (который я создал), который использует Microsoft Интерфейсы Службы Active Directory (через систему.Каталог.Коррупция) делать запросы LDAP. Внутри АДСИ он загружает схему Active Directory и сохраняет ее локально. Предполагается, что эта схема хранится в папке %LOCALAPPDATA%MicrosoftWindowsSchCache
.
когда я планирую этот исполняемый файл в Планировщик Задач на сервере Windows 2012 R2 и запустите "Усера" даже если пользователь не вошел в систему программа работает, но он пытается записать файл кэша в папка с буквальным именем %LOCALAPPDATA%MicrosoftWindowsSchCache
внутри start-in папка запланированной задачи (которая намеренно установлена в папку моего исполняемого файла). Другими словами, он записывает что-то вроде C:MyApp%LOCALAPPDATA%MicrosoftWindowsSchCache
. Я должен был дать UserA явные разрешения на запись в эту папку, чтобы позволить программе работать должным образом.
Я смотрел процесс задачи с Process Monitor, и он немедленно собирается в эту папку. Это не так, если он сначала пытается что-то в C:Users
, но не удалось.
когда я войти на сервер как мой собственный пользователь и вручную запустить исполняемый файл как UserA с помощью Запуск от имени другого пользователя исполняемый файл запускается и успешно пишет файл кэша в C:UsersUserAAppDataLocalMicrosoftWindowsSchCache
.
почему это происходит с планировщиком задач, и что я могу сделать, чтобы это исправить? Я полагаю, это может быть связано с задачей Планировщик выполнения программы в контексте Усера, но не initialaizing %LOCALAPPDATA%
в качестве переменной среды. По прихоти я попытался установить запуск с наивысшими привилегиями на задаче, но это не изменило результат.