2

Я создал пакетный файл (EnableDisable.bat), который отключит задание планировщика заданий Windows (SampleJob) в локальной системе, если задание с таким же именем (SampleJob) уже включено и выполняется в другой удаленной системе.

Кажется, что когда задание настроено с помощью параметра « Run whether user is logged on or not отмечен ли параметр « Run with Highest privileges что оно просто не работает, и причину трудно определить, и я не уверен, как устранить неполадки.


Пакетный файл

for /f "tokens=1" %%j in ('schtasks /Query /S [servername] /TN "SampleJob" /NH ^| findstr "Ready ^| Running"') do schtasks /Change /Disable /TN "%%j"

Примечание . Удаленная система называется [ servername ] и при необходимости заменяется фактическим именем удаленного сервера.


Конфигурации заданий планировщика задач Windows

  • Этот пакетный файл настроен как задание планировщика заданий Windows.
    • Имя: EnableDisableJob
    • Опция безопасности: Run whether user is logged on or not
      • Run with Highest privileges

наблюдения

Если я запускаю задание с помощью команды « Run only when user is logged on оно, похоже, работает без проблем. Тем не менее, похоже, что когда я пытаюсь запустить его с другой опцией, и, поскольку эта учетная запись не вошла в систему, она не может работать, когда это так.


Вопрос

Как устранить неполадки такого рода и с чего начать этот процесс?

2 ответа2

0

Все предложения от Pimp Juice IT великолепны. Я упомяну еще одну вещь здесь.

Вы должны убедиться, что учетная запись пользователя, выполняющего задачу, имеет Log on as batch job права пользователя пакетного задания . Вот документ от MS: ссылка .

А вот ссылка на то, как установить это из локальной политики безопасности: ссылка .

Вы также можете сделать это через GPO.

Конечно, как предположил ИТ-специалист Pimp Juice, если пользователь уже является локальным администратором, он может уже иметь это право.

0

Чтобы устранить это, вот несколько вещей

  1. Выйдите из системы, на которой вы выполняете этот процесс, используя учетную запись User1 а затем войдите в систему как учетную запись User2 и убедитесь, что для User2 создан профиль. Поэтому папка C:\Users\User2 должна существовать.
  2. Когда вы вошли в систему на этом компьютере как User2 запустите запланированное задание или, по крайней мере, протестируйте его с помощью Run only when user is logged on и Run with highest privileges и это должно вызвать окно командной строки при запуске и показать все ошибки и т.д. который вы не увидите, запустив его с параметром « Run whether user is logged on or not . Если вы видите ошибку "отказано в доступе" или что-то в этом роде, значит, существует проблема с разрешением.

Разрешение на выдачу

Вы хотите , чтобы обеспечить учетную запись пользователя запустить запланированное задание планировщика заданий с Run whether user is logged on or not и Run with highest privileges имеет доступ. , ,

  1. запустить командную строку (cmd.exe) с компьютера, на котором вы запускаете задачу
  2. запустить schtasks с машины, на которой вы запускаете задачу
  3. запустить schtasks удаленно на удаленном сервере, с которым вы запускаете задачу

Другие предметы

  1. Сделайте учетную запись User2 локальным администратором на компьютере, на котором вы временно запускаете задачу, а затем выйдите из системы и вернитесь на компьютер, а затем повторите попытку, чтобы исключить проблемы с разрешениями на локальном компьютере.

  2. Сравните различия в безопасности с User1 и User2 на удаленном компьютере, в группах безопасности домена и т.д.


Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .