【发布时间】:2017-09-26 10:45:18
【问题描述】:
我有一个脚本,其中包含对 winrs 的调用,以便在用户指定的目标计算机上远程启动 .exe 的执行。
我想要以下功能:
- 启动脚本
- 提示用户输入目标 PC 的名称
- winrs 进入执行 .exe 的目标 PC,并告诉运行脚本的用户正在执行此操作。
- 停止执行 winrs 并告诉运行脚本的用户它已经完成。
- 退出。
- 我想要运行脚本的机器上的所有输出,并且不希望在目标机器上显示任何活动。
我的代码如下:
@echo off
echo -------------------------------------------------------
echo PLEASE ENTER PC NAME OF DISCONNECTED MACHINE
echo -------------------------------------------------------
SET /p pcToReconnect=
echo Attempting to contact Agent.
call winrs -r:%pcToReconnect% "C:\Path\To The\exe that I want\toExecute.exe" >> logfile.txt 2>>&1
echo Agent reconnected. Please allow ~5mins for your management console to update.
代码一直执行,直到 winrs 调用,它实际上在目标机器上执行 .exe,但似乎远程 shell 在此之后只是保持打开状态。
如果此时我按下 ctrl+c,“终止 shell?(y/n)”将被放置在我的日志文件中(但在 cmd 提示符中没有输出),然后我可以按下“y”并输入,远程shell退出并且“终止批处理作业(Y / N)”出现在cmd提示符中,但是最后一个echo语句永远不会执行。
如何让远程 shell 在 .exe 运行后自动关闭,并在执行者的提示下回显脚本已完成的某种确认?
感谢所有帮助!
【问题讨论】:
标签: windows batch-file cmd winrm winrs