Проблема с вложенными вызовами с помощью psexec (доступ запрещен)

Прежде всего, извините за мой плохой английский. Я бы попытался объяснить свою проблему.

Я использую psexec в сценарии для перезапуска кластера следующим образом:

script1 в node1: выполнить множество задач (завершение работы, проверка статуса и т. д.) в node1 и после завершения всех задач, запускаемых с помощью psexec, script2 в node2 (psexec-d \ \ node2 script2)

script2 в node2: выполняет множество задач и запускает script3 в node1. Вот когда я получил «доступ запрещен» в psexec, когда я пытался запустить script3 в node1. (psexec-d \ \ nodo1 script3)

Запускаю скрипт с пользователем, который входит в группу администраторов

По соображениям безопасности я не могу передать имя пользователя и пароль, потому что оставлять учетные данные в файле .bat небезопасно.

Дополнительная информация:

Я запускаю сценарий на сервере W2k3. Я пробовал использовать сеть, и все в порядке. Я попробовал psexec с -u имя пользователя и -p имя пользователя, и все в порядке. Я попытался выполнить psexec с таким синтаксисом: psexec .exe -d \ node1. cmd.exe "script3.bat" и возвращает ту же ошибку.

Большое спасибо, С наилучшими пожеланиями


person user41931    schedule 11.12.2008    source источник


Ответы (3)


Наконец, я решил использовать сторожевой таймер во втором скрипте, поэтому скрипт будет запускаться этим процессом, а не psexec.

Большое спасибо за вашу помощь и ваше время, потраченное на то, чтобы помочь мне.

С наилучшими пожеланиями

person user41931    schedule 11.12.2008

Это может быть связано с проблемой, которая возникает из-за слишком большого количества переходов связанного сервера с использованием встроенной аутентификации - проблема с двойным скачком Kerberos.

Поскольку встроенная проверка подлинности Windows охватывает два отдельных механизма проверки подлинности:

  • NTLM v2 -и-
  • Kerberos,

если вы используете Kerberos, поскольку пароль пользователя никогда не передается на сервер IIS, единственный способ перехода токена на сервере IIS на другой компьютер в сети - через делегирование Kerberos. Если это недоступно или не разрешено, то прыжок не произойдет (похоже, что это происходит).

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

Источники:

person VonC    schedule 11.12.2008

Можете ли вы сделать вызов script2 дождаться завершения вместо того, чтобы script2 перезвонил на node1:

script1 в node1: выполнять множество задач (завершение работы, проверка статуса и т. д.) в node1 и после завершения запуска всех задач с помощью psexec script2 в node2 (psexec \ \ node2 script2)

script2 в node2: выполнять множество задач.

script1 в node1: запускает script3.

person Patrick Cuff    schedule 11.12.2008