【问题标题】:Issue with nested calls with psexec (access denied)使用 psexec 的嵌套调用出现问题(访问被拒绝)
【发布时间】:2010-09-26 10:17:36
【问题描述】:

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

我在脚本中使用 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" 并返回相同的错误。

想了很多 最好的问候

【问题讨论】:

    标签: scripting batch-file cluster-analysis psexec


    【解决方案1】:

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

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

    最好的问候

    【讨论】:

      【解决方案2】:

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

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

      • NTLM v2 -and-
      • Kerberos,

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

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

      来源:

      【讨论】:

        【解决方案3】:

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

        node1 中的script1:执行很多 任务(关闭服务,检查 状态等)在node1和之后 使用 psexec 完成所有任务启动 node2 中的 script2 (psexec \\ node2 脚本2)

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

        node1 中的script1:启动script3。

        【讨论】:

          猜你喜欢
          • 2010-11-29
          • 1970-01-01
          • 2010-10-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-02
          相关资源
          最近更新 更多