我正在使用PsExec
fromcmd
像这样在同一台机器上作为另一个用户执行命令:
PsExec.exe -u myuser -p mypass timeout 4
当我这样做时,会打开一个新的 cmd 窗口,其中包含 的输出timeout 4
,该窗口会保持打开状态,直到命令完成。如何防止这个新窗口打开或显示?
我得到的最接近的是以下内容,但这仍然不能令人满意,因为新窗口在最小化之前可以看到片刻:
PsExec.exe -u myuser -p mypass cmd.exe /c "start /min timeout 4"
我发现的唯一其他问题是从 开始PowerShell
,但我在标准中cmd
。我在 Windows 10 PsExec
v2.2 上。
我会使用 Windows 脚本主机(旧技术)将窗口作为隐藏启动。我也使用这种方法通过任务调度程序来做我不想弹出的事情。
此方法将使您能够灵活地实际控制窗口创建标志(如果没有代码,您将无法做到这一点)。
像这样:
regsvr32 %systemroot%\system32\jscript.dll
接下来,创建一个包含以下内容的 JScript 文本文件。
现在使用命令行运行这个 JScript 文件:
wscript.exe <path_to_jscript_file>
或者cscript.exe <path_to_jscript_file>
您使用哪一种取决于您所寻求的行为。一起玩。
PsExec.exe -u myuser -p mypass timeout 4
.从那以后,我自己找到了两个解决方案。更简单的是
PAExec
使用PsExec
. 它需要相同的参数和更多参数,但不会打开额外的窗口。对于第二个解决方案,user1292580 的评论以及 Señor CMasMas 的回答让我走上了正轨。问题是只将
timeout
命令放在脚本文件中,然后使用PsExec
. 所以,使用这个.js
文件:或者这个
.vbs
文件:然后打电话
PsExec.exe wscript <the_script_file>
就可以了。