Можно ли запустить сценарий CMD в планировщике задач от имени конкретного пользователя без опции отметки «Запускать с наивысшими привилегиями»?
Простой тест:
echo success > D:\Admin\Scripts\TestScripts\out.txt
D:\Admin\Scripts\TestScripts\testscript.cmd
D:\Admin\Scripts\TestScripts
Запустите задачу вручную, и она завершится с кодом 0x1.
Если я отмечу «Запускать с наивысшими привилегиями», он запустит fune. out.txt файл создан.
Такой же эффект возникает при создании задачи с параметрами:
cmd.exe
/c D:\Admin\Scripts\TestScripts\testscript.cmd
D:\Admin\Scripts\TestScripts
Вопросы следующие:
Это и есть UAC. Короче говоря, вам необходимо предоставить доступ на запись в целевой каталог для данного пользователя, БЕЗ зависимости от членства пользователя в группе администраторов.
например: если ACL для текущего каталога:
Administrators:(OI)(CI)(F)
SYSTEM:(OI)(CI)(F)
Authenticated Users:(OI)(CI)(RX)
... вам нужно либо добавить прямую запись ACL, например: имя пользователя: (OI) (CI) (M) или запись ACL для группы, членом которой является пользователь.
Причина в том, что ОАК препятствует членству в Администраторы группа, имеющая какое-либо влияние, без предварительного возвышения. Это сделано намеренно.
Я надеюсь это имеет смысл.
Если ваш (администратор) пользователь, выполняющий задачи, может выполнять ту же операцию в обычной командной строке без повышенных прав, он также должен работать через планировщик задач.
Скорее всего, вашему администратору требуется повышение прав для записи файла в этот каталог. То же самое и с задачей.
«Выполнить с наивысшими привилегиями» просто указывает планировщику задач сначала повысить уровень пользователя перед выполнением команды.
Попробуйте записать файл в каталог, в котором «пользователи» имеют права на запись, он будет работать без «наивысших привилегий».