如何在vmware中使用vmrun运行命令,命令为(echo%PROGRAMFILES%)

问题描述:

如何使用vmrun在vmware中运行命令,命令为(echo%PROGRAMFILES%)在客机上。 和客机应该返回命令结果的值...如何做到这一点?请建议如何在vmware中使用vmrun运行命令,命令为(echo%PROGRAMFILES%)

看看这里的vmrun命令。您需要Guest OS命令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%" 
+0

我已经试过这一点,它不工作..这是我做下面 “C:\\ Program Files文件(x86)的\\ \\ VMware的VMware Workstation的\\ vmrun.exe” -gu的localName - gp password runScriptInGuest“C:\\ Users \\ Administrator \\ Documents \\ Virtual Machines \\ Windows 8 32_ws \\ Windows 8 32_ws.vmx”“C:\\ windows \\ system32 \\ cmd.exe”“/ c echo%PROGRAMFILES%“ – user2511126

+0

基本上我需要运行这个命令并将命令的输出回收到主机中......我不确定这是否可以使用vmrun命令 – user2511126

+0

我可以确认runScriptInGuest无法正常工作Windows(至少不是我使用的是Windows 7和VMWare 9)。是的,runProgramInGuest执行一个以前复制到guest虚拟机的BAT文件就是解决方案,正如samwyse的回答所证明的那样。 –

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

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

@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