PsExec无法在第二次呼叫时连接

时间:2015-03-23 20:27:58

标签: powershell remote-access psexec

我遇到了使用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限制,但我检查过并发现只有一个连接处于活动状态。

任何帮助找出问题的人都会非常感激。

2 个答案:

答案 0 :(得分:0)

我刚刚遇到这个,并且玩弄它,我找到了一个解决方法,为我解决了这个问题。

如果它们与第一次通话中的相同,请尝试从第二次通话中删除帐户凭据。您的电话将如下所示:

第一:
    &安培; psexec \\ $ computer_name -u&#34; domain / user&#34; -p&#34;通过&#34; -w&#34;文件夹&#34; &#34;程序1&#34; 2

第二:
    &安培; psexec \\ $ computer_name -w&#34;文件夹&#34; &#34;程序1&#34; 1

答案 1 :(得分:0)

我也遇到了这个问题。我的解决方案是将所有远程命令放在批处理文件PSEXEC_COMMANDS.cmd中,然后只运行一次PsExec

PsExec \\<computer> <options> -c PSEXEC_COMMANDS.cmd <arguments>

  • 信用:https://stackoverflow.com/a/12393887/9718438
  • 来自{em> PsExec 的作者here-c开关的更多信息:

    [I]如果它是要在远程系统上执行的本地系统上的可执行文件,请指定-c开关和文件的本地路径。 -c开关指示PsExec将指定的可执行文件复制到远程系统中以执行,并在程序完成运行后将其从远程系统中删除。

相关问题