今天遇到个很奇特的情况,一台vsphere里的虚拟机装了windows2003系统,可能是因为新装,没打任何补丁,用来上网下载点东西,结果居然中了毒,无法建立网络连接了,vcenter console登上去,访问任意网络地址都报出MSVCP71.dll没了...无网络,还是远程的虚拟机,怎么把解决的什么大师工具传上去?或者怎样把里面我需要的东西拷出来?


好在这台windows2003装过vmware tools, 但在vcenter上找了一圈,没找到如何通过vmware tools来访问虚拟机内文件的办法。


又好在我用过python的pysphere包,它似乎提供了通过vmware tools来操作虚拟机的一些方法,找了找,果然有get_file和send_file方法!


具体使用如下:

[root@localhost ~]# python
Python 2.7.3 (default, Nov 22 2013, 09:40:53)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from pysphere import *
>>> vc_ip='172.16.1.162'
>>> user='Administrator'
>>> passwd='china@123'
>>> s=VIServer()
>>> s.connect(vc_ip,user,passwd)
>>> vm1=s.get_vm_by_name('npiv_test')
>>> vm1.login_in_guest('Administrator','admin')
>>> vm1.get_file("c:\\temp\\MH01385.txt","/root/a.txt")
>>> vm1.get_file("c:\\temp\\HMC_Update_V7R730_SP6.iso","/root/HMC_Update_V7R730_SP6.iso")
>>>
>>>
>>>
>>>
>>> vm1.get_file("c:\\temp\\MH01385.dd.xml","/root/MH01385.dd.xml")
>>> vm1.get_file("c:\\temp\\MH01385.pd.sdd","/root/MH01385.pd.sdd")
>>> vm1.get_file("c:\\temp\\MH01385.readme.html","/root/MH01385.readme.html")
>>> vm1.get_file("c:\\temp\\MH01385.txt","/root/MH01385.txt")


就这样,我成功把需要的文件传到了另外一台redhat机器上了。