windows – 在远程Powershell会话中执行交互式命令不起作用

我在远程Power
Shell会话中执行命令时遇到麻烦,需要用户交互.

示例:我进入远程会话

Enter-PSSession -ComputerName mobius

在这个会话中,我执行一个要求输入密码的命令:

[mobius]: PS C:\Windows\system32> & 'c:\Program Files (x86)\Putty\plink.exe' merlin -l joe

joe@merlin's password:
c:\Program Files (x86)\Putty\plink.exe : Using username "plakat".
    + CategoryInfo          : NotSpecified: (Using username "plakat".:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

最后两行显示为红色.似乎有两个问题.

问题1:plink.exe将文本’using username“plakat”’写入stderr.这可能会导致错误消息.我可以以某种方式压制这个吗? (管道stderr到stdout或其他东西.)

问题2:进程退出时我应该输入密码.我也可以用其他命令重现它

[mobius]: PS C:\Windows\system32> cmd /c date

它不允许我输入日期.如果我在本地PowerShell中运行它们,则这两个命令都有效.在这种情况下,问题1或2都没有出现.

最佳答案 远程PowerShell会话不支持交互式本机Windows控制台命令.我知道这听起来很愚蠢,但目前情况就是这样(从PowerShell v4.0开始).

大多数命令行实用程序都支持某种形式的自动化,无论是管道还是将值作为参数传递,因此请仔细查看您正在使用的工具.当然,这是根据具体情况而定.没有简单的方法可以以任何通用方式拦截远程端的交互式提示.

点赞