Проблема с вложенными вызовами с помощью 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 username и -p username, и все нормально. Я попытался выполнить psexec с этим синтаксисом: psexec .exe -d \ node1 cmd.exe "script3.bat" и возвращает ту же ошибку.

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

11.12.2008 12:27:57
3 ОТВЕТА

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

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

  • NTLM v2-и-
  • Kerberos,

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

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

Источники:

0
11.12.2008 12:59:40

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

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

script2 в node2: выполнить много задач.

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

0
11.12.2008 13:40:24

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

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

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

1
11.12.2008 22:00:41