我遇到了使用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限制,但我检查过并发现只有一个连接处于活动状态。
任何帮助找出问题的人都会非常感激。
答案 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>
-c
开关的更多信息:
[I]如果它是要在远程系统上执行的本地系统上的可执行文件,请指定-c开关和文件的本地路径。 -c开关指示PsExec将指定的可执行文件复制到远程系统中以执行,并在程序完成运行后将其从远程系统中删除。