远程Powershell运行交互式批处理文件

时间:2018-11-01 00:21:15

标签: powershell batch-file powershell-remoting

这可能是一个带有二进制答案的问题。

我在服务器上有一系列批处理文件。它们都需要通过CHOICE或SET进行某种方式的用户输入。

我想使用Powershell从我的桌面远程运行这些程序。

这可能吗?到目前为止,我的测试显示了批处理脚本正在运行,但是它们跳过了任何用户输入。

如果上述操作不可能实现,那么谁能将我指向具有有关Powershell实现信息的资源,该实现可以远程接受用户输入?

脚本需要保留在中央位置,因此所有用户应该在桌面上只有一个PS脚本,该PS脚本在服务器上运行PS脚本,负责请求和处理用户输入。

欢呼

编辑:

我已经尝试了Invoke-Command和Enter-pssession,但都没有用。我收到以下错误消息:

.\MultiScript.bat :
+ CategoryInfo          : NotSpecified: (:String) [], RemoteExeption
+ FullyQualifiedErrorId : NativeCommandError

ERROR: The file is either empty or does not contain the valid choices.

这是一段代码摘录:

CHOICE /C 123456789 /M "Enter your choice:"

IF ERRORLEVEL 9 call %installdir%\stream\check1 %input% & GOTO main
...etc
IF ERRORLEVEL 1 call %installdir%\single\getlogs %input% & GOTO main

在我的Powershell终端上,它表明它正在自动选择上面的选项9以运行另一个脚本。在下面的脚本中,向用户请求了ID,我可以看到自动输入了女性性别符号(char [9792])。

问题实际上似乎是Powershell无法理解CHOICE或SET关键字,只是跳过了它们,或者给出了奇怪的输入。

1 个答案:

答案 0 :(得分:0)

您需要远程调用命令。为此,您可以以此为例

Invoke-command -computername SERVERhostname -sessionoption (new-pssessionoption -nomachineprofule) -scriptblock {cmd.exe /c "c:/batchfile.bat -option"}

适当替换SERVER主机名。

除非您说它会问问题。然后,您可以远程进入服务器。

Enter-pssession

将根据您的需要