首先,抱歉我的英语不好。我会尝试解释我的问题。
我在脚本中使用psexec来重新启动集群,如下所示:
node1中的script1:在node1中执行很多任务(关闭服务,检查状态等),并在完成所有任务启动后用psexec在node2中的script2(psexec-d \\ node2 script2) node2中的script2:执行很多任务并在node1中启动script3。这是当我尝试在node1中运行script3时,在psexec中收到“拒绝访问”的时候。 (psexec-d \ nodo1 script3)
我使用属于组管理员的用户启动脚本
出于安全原因,我无法传递用户名和密码,因为将凭据保留在.bat文件中是不安全的。
其他信息:
我在W2k3服务器上运行脚本 我尝试了网络使用,一切都好 我用-u用户名和-p用户名尝试了一个psexec,一切正常 我尝试使用以下语法执行psexec:psexec .exe -d \ node1 cmd.exe“script3.bat”并返回相同的错误。
很多 最诚挚的问候
答案 0 :(得分:1)
最后我决定在第二个脚本中使用一个看门狗进程,因此脚本将由此进程启动,而不是由psexec启动。
非常感谢您的帮助和您花时间帮助我。
祝你好运
答案 1 :(得分:0)
这可能与使用集成身份验证从太多链接服务器跃点中获取的问题有关 - double-hop Kerberos problem。
由于集成Windows身份验证包含两种不同的身份验证机制:
如果您使用Kerberos,因为用户的密码永远不会传递给IIS服务器,IIS服务器上的令牌将跳转到网络上的另一台机器的唯一方法是通过Kerberos委派。如果这不可用或不允许,则不会发生跳跃(听起来就是这样)。
鉴于您使用的是默认凭据,并且当前安全上下文是无法委派的模拟令牌,则您提供的凭据不会跳转到 另一台机器。 由于Windows集成身份验证会创建模拟令牌,因此非常可能出现这种情况。
来源:
答案 2 :(得分:0)
你可以调用script2等待完成,而不是让script2回调到node1:
node1中的script1:执行很多 任务(关机服务,检查 在node1和之后的状态等 使用psexec完成所有任务启动 node2中的script2(psexec \\ node2 script2)
节点2中的script2:执行很多 任务。
node1中的script1:启动script3。