Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Hyper-V PowerShell-在Linux虚拟机中运行bash命令并获取输出_Windows_Bash_Powershell_Remote Access_Hyper V - Fatal编程技术网

Windows Hyper-V PowerShell-在Linux虚拟机中运行bash命令并获取输出

Windows Hyper-V PowerShell-在Linux虚拟机中运行bash命令并获取输出,windows,bash,powershell,remote-access,hyper-v,Windows,Bash,Powershell,Remote Access,Hyper V,假设你有 带有Hyper-V和PowerShell 5.1的Windows服务器。您可以添加和使用任何PowerShell模块,如“Hyper-V” Linux虚拟机。它是通用的,因此不允许安装不常见的应用程序,如PowerShell Core 现在,您正在使用(1)Hyper-V,可以在其中运行PowerShell脚本 问题。如何在(2)Linux虚拟机上运行Bash命令,并使用Hyper-V的PowerShell获取其输出 我相信这个问题相当于创建并运行question.ps1,它在linu

假设你有

  • 带有Hyper-V和PowerShell 5.1的Windows服务器。您可以添加和使用任何PowerShell模块,如“Hyper-V”

  • Linux虚拟机。它是通用的,因此不允许安装不常见的应用程序,如PowerShell Core

  • 现在,您正在使用(1)Hyper-V,可以在其中运行PowerShell脚本

    问题。如何在(2)Linux虚拟机上运行Bash命令,并使用Hyper-V的PowerShell获取其输出

    我相信这个问题相当于创建并运行question.ps1,它在linux虚拟机中运行bash/tmp/linux.sh,并获得所需的输出100,其中/tmp/linux.sh如图所示

    回忆。在Linux虚拟机中,您有
    /tmp/Linux.sh

    #/bin/bash
    val=100
    回音“$val”
    退出$?
    
    回答(确认)。在Windows Hyper-V主机中存储PuTTY

    提示。轻便腻子就足够了:

    假设您已将PuTTY Portable存储在C:\PortableApps\PuTTYPortable中

    创建PowerShell脚本文件
    C:\Users\userH\Desktop\question.ps1

    C:\PortableApps\PuTTYPortable\App\putty\PLINK.EXE 10.0.0.200 -l userL -pw passwordL -batch bash /tmp/linux.sh
    
    ^^将此行放在此PowerShell脚本文件中的某个位置

    在PowerShell中,运行脚本文件
    question.ps1

    PS C:\> & "C:\Users\userH\Desktop\question.ps1"
    100
    PS C:\>
    

    如果您的Linux VM中已经安装了SSH服务器组件,或者允许您安装它,请从Windows计算机使用SSH;也许这有帮助:请阅读原始问题:使用PowerShell,而不是人类用户的SSH。请不要删除甚至不是JavaScript的表。我非常确定我需要IPv4/主机名、用户名、密码和Hyper-V主机和Linux VM guest的脚本(路径),请参见你的question.ps1脚本。很抱歉删除了该表-它肯定没有呈现这样的结果,并且在乱七八糟的原始表示(原始CSS和HTML片段)中,与问题的连接并不明显1.我已经读了原来的问题。我的建议是从PowerShell调用SSH,以便在Linux上执行Bash脚本并捕获其输出。我不知道什么是“用户PowerShell,而不是人类用户的SSH”。means.PuTTY随CLI
    plink.exe
    ,它“是一个类似于UNIX
    SSH
    ”的命令行连接工具。感谢:这个答案基于
    mklement0
    的评论。
    PS C:\> & "C:\Users\userH\Desktop\question.ps1"
    100
    PS C:\>