【问题标题】:How to run a command in vmware using vmrun, command is (echo %PROGRAMFILES%)如何使用 vmrun 在 vmware 中运行命令,命令是 (echo %PROGRAMFILES%)
【发布时间】:2014-01-28 00:45:27
【问题描述】:

如何使用 vmrun 在 vmware 中运行命令,命令是 (echo %PROGRAMFILES%) 在来宾机器上.. 并且来宾机器应该返回命令结果的值......怎么做???请建议

【问题讨论】:

    标签: virtual-machine vmware vmrun


    【解决方案1】:

    我需要做类似的事情并发现了这个未回答的问题。这是我的解决方案。

    @ECHO OFF
    
    REM Set up abbreviations that we'll be using a lot.
    SET VMRUN="C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe" -T ws -gu Administrator -gp password
    SET VMX="C:\Users\whoever\Documents\Virtual Machines\Windows\Windows.vmx"
    SET GUEST_COMSPEC="C:\WINDOWS\system32\cmd.exe"
    
    REM Tried to do this in one line, but couldn't figure out the quoting.
    %VMRUN% CreateTempfileInGuest %VMX% >%TEMP%\GuestTmp.txt || GOTO :CantCreate
    FOR /F "delims=;" %%F IN ( %TEMP%\GuestTmp.txt ) DO SET GTEMP=%%F
    
    REM The batch file is a one-liner that echos the variable into a file.
    REM It could be generated dynamically and copied to the guest
    REM but I didn't want to complicate things any further.
    %VMRUN% runProgramInGuest %VMX% %GUEST_COMSPEC% "/c C:\echo-ProgramFiles.bat %GTEMP%"
    %VMRUN% CopyFileFromGuestToHost %VMX% %GTEMP% %TEMP%\GuestOut.txt
    %VMRUN% DeleteFileInGuest %VMX% %GTEMP%
    
    REM Do something with the result and delete the temp files.
    TYPE %TEMP%\GuestOut.txt
    DEL %TEMP%\GuestOut.txt %TEMP%\GuestTmp.txt
    GOTO :EOF
    
    :CantCreate
    REM Provide details on any problems.
    TYPE %TEMP%\GuestTmp.txt 1>&2
    DEL %TEMP%\GuestTmp.txt
    EXIT 100
    

    这是来宾主机上的批处理文件。如您所见,这非常简单。我无法重定向以在 runProgramInGuest 中工作(可能没有足够的实验) 所以我只是将文件作为命令行参数传递。

    @echo %PROGRAMFILES% >%1
    

    【讨论】:

      【解决方案2】:

      在此处查看vmrun 命令。您需要客户操作系统命令runScriptInGuest

      我没有检查命令,但它应该是这样的。请验证。

      vmrun -T server -h https://xps:8333/sdk -u user -p mypassword -gu administrator -gp guestpaswd 
        runScriptInGuest "[Vol1] win2008-1/win2008-1.vmx" "echo %PROGRAMFILES%"
      

      【讨论】:

      • 我已经尝试过了,但它不起作用..这是我在 "C:\\Program Files (x86)\\VMware\\VMware Workstation\\vmrun.exe" -gu localname 下面所做的-gp 密码 runScriptInGuest "C:\\Users\\Administrator\\Documents\\Virtual Machines\\Windows 8 32_ws\\Windows 8 32_ws.vmx" "C:\\windows\\system32\\cmd.exe" "/ c echo %PROGRAMFILES%"
      • 基本上我需要运行此命令并将命令的输出捕获回主机中......我不确定这是否可以使用 vmrun 命令
      • 我可以确认 runScriptInGuest 在 Windows 中不能正常工作(至少不是我正在使用的——Windows 7 和 VMWare 9)。是的,runProgramInGuest,执行之前复制到来宾的 BAT 文件,是解决方案,如 samwyse 的回答所示。
      【解决方案3】:

      我不得不使用 runProgramInGuest 将输出捕获到文件 将文件复制回我的主机并使用它 这就是我用的soln。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-01
        • 2012-09-17
        • 2020-06-08
        相关资源
        最近更新 更多