PsExec 在第二次调用时无法连接
PsExec fails to connect on second call
我运行遇到了使用 psexec 从机器 B 连接到远程机器 A 的问题。
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
The handle is invalid.
Connecting to <server>...
Couldn't access <server>:
让我感到困惑的部分是,就在这之前,我们有一个从机器 B 到机器 A 的脚本调用,它工作得很好。 (如果相关的话,这是通过 powershell 脚本完成的)。
这是第一个调用(有效)
& psexec \$computer_name -u "<domain>/<user>" -p "<pass>" -w "<folder>" "<program1>" 2
这是第二次调用(在第一次之后直接执行)
& psexec \$computer_name -u "<domain>/<user>" -p "<pass>" -w "<folder>" "<program1>" 1
当我只从另一台机器(机器 C 指向机器 A)获取脚本的那部分 运行 时,我可以让它工作,这让我认为两者不太可能互相干扰。我一直在寻找一种方法来断开 psexec 与计算机的连接,但我没有找到任何东西,所以我不确定是否有办法。
我在超级用户上找到了一个答案,提示它可能受到会话限制 https://superuser.com/questions/200938/psexec-the-handle-is-invalid,但我检查后发现只有一个连接处于活动状态。
如能帮助找出问题所在,我们将不胜感激。
我只是 运行 对此感兴趣,并且尝试了一下,我找到了一个解决方法来解决这个问题。
如果它们与第一次通话中的相同,请尝试从第二次通话中删除帐户凭据。您的通话将如下所示:
第一个:
& psexec \\$computer_name -u "domain/user" -p "pass" -w "folder" "program1" 2
第二个:
& psexec \\$computer_name -w "folder" "program1" 1
我运行也遇到过这个问题。我的解决方案是将所有远程命令放在一个批处理文件中 PSEXEC_COMMANDS.cmd
和 运行 PsExec
一次:
PsExec \<computer> <options> -c PSEXEC_COMMANDS.cmd <arguments>
- 来源:
- 有关
-c
开关的更多信息来自 PsExec 的作者 here:
[I]f it's an executable on the local system that you want to execute on the remote system, specify the -c switch and the file's local path. The -c switch directs PsExec to copy the specified executable to the remote system for execution and delete the executable from the remote system when the program has finished running.
我运行遇到了使用 psexec 从机器 B 连接到远程机器 A 的问题。
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
The handle is invalid.
Connecting to <server>...
Couldn't access <server>:
让我感到困惑的部分是,就在这之前,我们有一个从机器 B 到机器 A 的脚本调用,它工作得很好。 (如果相关的话,这是通过 powershell 脚本完成的)。
这是第一个调用(有效)
& psexec \$computer_name -u "<domain>/<user>" -p "<pass>" -w "<folder>" "<program1>" 2
这是第二次调用(在第一次之后直接执行)
& psexec \$computer_name -u "<domain>/<user>" -p "<pass>" -w "<folder>" "<program1>" 1
当我只从另一台机器(机器 C 指向机器 A)获取脚本的那部分 运行 时,我可以让它工作,这让我认为两者不太可能互相干扰。我一直在寻找一种方法来断开 psexec 与计算机的连接,但我没有找到任何东西,所以我不确定是否有办法。
我在超级用户上找到了一个答案,提示它可能受到会话限制 https://superuser.com/questions/200938/psexec-the-handle-is-invalid,但我检查后发现只有一个连接处于活动状态。
如能帮助找出问题所在,我们将不胜感激。
我只是 运行 对此感兴趣,并且尝试了一下,我找到了一个解决方法来解决这个问题。
如果它们与第一次通话中的相同,请尝试从第二次通话中删除帐户凭据。您的通话将如下所示:
第一个:
& psexec \\$computer_name -u "domain/user" -p "pass" -w "folder" "program1" 2
第二个:
& psexec \\$computer_name -w "folder" "program1" 1
我运行也遇到过这个问题。我的解决方案是将所有远程命令放在一个批处理文件中 PSEXEC_COMMANDS.cmd
和 运行 PsExec
一次:
PsExec \<computer> <options> -c PSEXEC_COMMANDS.cmd <arguments>
- 来源:
- 有关
-c
开关的更多信息来自 PsExec 的作者 here:[I]f it's an executable on the local system that you want to execute on the remote system, specify the -c switch and the file's local path. The -c switch directs PsExec to copy the specified executable to the remote system for execution and delete the executable from the remote system when the program has finished running.