Назад | Перейти на главную страницу

Запланированная задача Windows 10 не использует учетные данные домена для доступа к сетевым ресурсам

У меня простая задача, которая для целей тестирования состоит из командного файла с двумя строками:

whoami >result1.txt
copy \\server\share\test1.txt C:\Users\xxx\Documents > output.txt 2> error.txt

Когда я запускаю это из интерактивного входа в систему, он работает нормально, потому что у меня есть учетные данные домена, которые дают мне доступ к общему ресурсу.

Когда я запускаю его из планировщика заданий, он не работает. Первая команда выполняется успешно (и, кстати, демонстрирует, что запланированная задача выполняется с моей личностью), но вторая команда терпит неудачу, предположительно потому, что она не использует правильные учетные данные для подключения.

После выполнения задачи error.txt пусто и output.txt содержит "Access is denied." В истории задач нет полезной информации - просто Action Completed и Last Run Result из (0x1) потому что копия не удалась.

Общие параметры в свойствах запланированной задачи предназначены для запуска с моей учетной записью пользователя домена и для «Запускать независимо от того, вошел пользователь в систему или нет». Я пробовал как с набором «Запускать с высшими привилегиями», так и без него - похоже, ничего не меняет. Я также попытался изменить параметр «Настроить для» - снова безрезультатно. «Не сохранять пароль» не проверяется, но я пытался проверить его только на полноту, и это не меняет поведения.

На стороне сервера я проверил журнал событий безопасности. Когда команда терпит неудачу, я вижу событие Audit Success Anonymous Logon logon, запись Audit Failure, которая выглядит так, как будто анонимный вход пытается использовать SeBackupPrivilege:

A privileged service was called.

Subject:
  Security ID:      ANONYMOUS LOGON
  Account Name:     ANONYMOUS LOGON
  Account Domain:       NT AUTHORITY
  Logon ID:     0x180e12c36

Service:
  Server:   Security
  Service Name: -

Process:
  Process ID:   0x4
  Process Name: 

Service Request Information:
  Privileges:       SeBackupPrivilege

а затем сеанс анонимного входа в систему аудита успеха уничтожен.

Клиент - Windows 10, сервер - Windows 2008 R2. Учетные данные - это учетная запись пользователя домена в Active Directory.

Если я использую другой сервер, Windows Server 2016, на котором запущены IIS и WebDAV, то задача отлично работает через планировщик задач. Итак, при использовании WebDAV мои учетные данные используются, а при использовании CIFS - нет.

Может ли кто-нибудь объяснить, почему копия не работает и есть ли обходной путь? Какие-нибудь дальнейшие шаги для тестирования? Я заставил его работать путем жесткого кодирования учетных данных в пакетном файле, но, очевидно, это не совсем приемлемо.

Было высказано предположение, что эта политика может быть актуальной, но она отключена, поэтому я не думаю, что это так:

Network access: Do not allow storage of passwords and credentials for network authentication

at

Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options

Я видел больше анекдотических свидетельств того, что разрешения в интерактивном режиме ведут себя иначе, чем в запланированной задаче. И сообщение журнала событий, кажется, указывает на то, что ему нужен seBackupPrivilige (что, вероятно, действительно означает, что он хочет изменить владельца объекта).

Помещение пользователя, с которым вы запускаете задачу, во встроенную локальную группу, такую ​​как операторы резервного копирования на целевом сервере, может помочь (у вас нет испытательного стенда для проверки этого, но если вы не уверены, начните с локального администратора на обоих серверах, а затем использовать устранение).

Теоретически вы также можете использовать объект групповой политики домена, чтобы установить аналогичные разрешения для конкретного пользователя или, что еще лучше, его группы.

EDITED: вы пытались опустить или изменить вывод ошибки? Событие безопасности может быть отвлекающим маневром (например, NTLM auth всегда будет иметь неудачную анонимную запись).

Если я запустил ваш скрипт, он выйдет из строя в запланированной задаче, потому что перед> output.txt и 2> error.txt нет пути, но это работает:

copy \\two.moh.local\test\test1.txt C:\temp\ > c:\temp\output.txt 2> c:\temp\error.txt

Ваш сценарий будет работать, если вы запустите его из командной строки или двойным щелчком, потому что он будет использовать родительский каталог, который работает по-другому, когда не работает в интерактивном режиме (я предполагаю, что он пытался написать где-нибудь, где у администратора домена есть разрешения, в то время как ваш пользователь не).

Прежде всего, «Ошибка планировщика заданий 0x1» его сложно отладить, и необходимо попробовать несколько решений, чтобы найти причину в вашей среде.

Прочитав вопрос и ответы, я предлагаю:

  1. Постарайтесь явно указать все пути, используемые в файлах сценариев или пакетов. Не используйте короткий путь. Измените путь назначения C: \ Users \ xxx \ Documents на что-то вроде D: \ test.
  2. Попробуйте указать полный путь к файлам ошибок и выходным файлам.

Также я предлагаю проверить параметры на «вкладке действий». Попробуйте использовать кавычки на путях с пробелами.

Вы также можете найти ценную информацию об ошибке возврата 0x1 на этом источник