2

首先,对不起我糟糕的英语。我会尝试解释我的问题。

我在脚本中使用 psexec 来重新启动集群,如下所示:

node1 中的 script1:在 node1 中执行大量任务(关闭服务、检查状态等),并在使用 psexec 完成所有任务启动后,在 node2 中执行 script2(psexec-d \ node2 script2)

node2 中的 script2:执行大量任务并在 node1 中启动 script3。这是,当我尝试在 node1 中运行 script3 时,我在 psexec 中收到“拒绝访问”。(psexec -d \\ nodo1 script3)

我使用属于组管理员的用户启动脚本

出于安全原因,我无法传递用户名和密码,因为将凭据留在 .bat 文件中是不安全的。

附加信息:

我在 W2k3 服务器上运行脚本 我尝试了 net use 并且一切正常 我尝试了带有 -u 用户名和 -p 用户名的 psexec 并且一切正常 我尝试使用以下语法执行 psexec: psexec .exe -d \node1 cmd.exe "script3.bat" 并返回相同的错误。

非常感谢

4

3 回答 3

1

最后我决定在第二个脚本中使用看门狗进程,所以脚本将由这个进程启动,而不是由 psexec 启动。

非常感谢您的帮助和您为帮助我所付出的时间。

此致

于 2008-12-11T16:06:23.433 回答
0

这可能与使用集成身份验证从太多链接服务器跃点获得的问题有关 -双跃点 Kerberos 问题

由于集成 Windows 身份验证涵盖两种独立的身份验证机制:

  • NTLM v2 -和-
  • 克伯罗斯,

如果您使用的是 Kerberos,由于用户的密码永远不会传递给 IIS 服务器,因此 IIS 服务器上的令牌要跳到网络上的另一台机器的唯一方法是通过 Kerberos 委派。如果那不可用或不允许,那么跳跃就不会发生(这听起来像是正在发生的事情)。

假设您使用的是默认凭据,并且如果当前安全上下文是一个无法委托的模拟令牌,那么您提供的凭据将不会跳转到另一台机器。由于 Windows 集成身份验证会创建模拟令牌,因此很可能会出现这种情况。

资料来源:

于 2008-12-11T12:37:05.633 回答
0

你可以让 script2 的调用等待完成,而不是让 script2 回调到 node1:

node1 中的 script1:在 node1 中执行大量任务(关闭服务、检查状态等),并在使用 psexec 完成所有任务启动后,在 node2 中执行 script2(psexec \ node2 script2)

node2 中的 script2:执行很多任务。

node1 中的 script1:启动 script3。

于 2008-12-11T13:40:24.680 回答