在 PSEXEC 中在后台运行命令

在 PSEXEC 中在后台运行命令

下面的命令运行正常,并释放、更新远程 IP 地址。

PsExec.exe \\10.10.1.12 -accepteula -u Administrator -p 1 cmd /c "ipconfig /release && ipconfig /renew"

但是,由于在之后 IP 连接丢失release,PsExec 会等待一段时间直到生成错误。我知道我可以指定超时,但为了区分真正的错误,我想在后台运行上述命令。我想使用start /B,但我的尝试失败了,例如:

PsExec.exe \\10.10.1.12 -accepteula -u Administrator -p 1 "cmd /c start /B "ipconfig /release && ipconfig /renew""

寻找正确的使用方法start /B

答案1

创建一个批处理文件,其名称如下ReleaseRenewIP.cmd

@ECHO OFF
IPCONFIG /release && IPCONFIG /renew

完成后远程运行以下命令:

PSEXEC \\10.10.1.12 -s -c ReleaseRenewIP.cmd

这些执行程序命令选项执行以下操作:

-c  Copy the specified program to the remote system for execution. If you omit this option the application must be in the system path on the remote system.

-s  Run the remote process in the System account.

答案2

你不能只用双引号括住双引号 (嵌套引号); 你需要 '逃脱' 内部引号,以便它们不会被视为当前语句的终止。

在 Windows 的命令行中,可以通过将双引号加倍来转义双引号。因此,请尝试:

PsExec.exe \\10.10.1.12 -accepteula -u Administrator -p 1 "cmd /c start /B ""ipconfig /release && ipconfig /renew"""

我认为您可能还必须将cmd /c命令参数括在引号中,因此也许:

PsExec.exe \\10.10.1.12 -accepteula -u Administrator -p 1 "cmd /c ""start /B ""ipconfig /release && ipconfig /renew"""""

答案3

请先介绍一下家伙的基本原理。先爬,再走,然后跑!

首先记住单个指令,了解其工作原理,了解您要做什么...从提出问题直到得到答案,您需要了解自己在做什么!

它需要有意义,好吧。

与发出命令一样,您需要知道您想要的结果、问题、答案、命令或指令,以及如何获得它。它必须能够重复给出相同或相似的结果。请注意,不同的操作系统和软件版本可能会对同一命令给出不同的结果!

你确实需要知道并记住这一点。

当您理解单个指令或命令时,请尝试组合或串联命令。

这里再次记住,命令可以、可能或可能不会互相干扰,并且在不同的操作系统和/或其他版本的软件或组合上也会做出不同的反应(包括网络上的其他机器,在开启或关闭、在线或离线,有时两者兼而有之,可能会改变或给出您正在处理的本地机器上的不同结果)。

我的手指被烧伤过好几次。

注意:在进行下一步之前,请先在一台具有单一操作系统且固定设置的电脑上尝试执行或获得简洁或重复的相同结果。

通过这些简单的步骤,您将能够在各种系统上执行任何操作,无论是新系统、旧系统,甚至使用非您自己的语言。因为您知道自己想要什么和需要做什么。

是的,我可以将命令交给你...但你能将它交给其他人使用,或者在其他地方使用它吗?

尝试消除太多变量。

要准确!

享受你正在尝试做的事情....快乐的狩猎;-)

相关内容