实现 VMware 服务/网卡随程序运行和关闭

在用vmware时,发现系统资源消耗很大,找到这篇文章参考。

实现 VMware 服务/网卡随程序运行和关闭
——最大程度节约系统资源

 

作者:LeoDou  (2006-01-25)

原文摘自:CCF精品技术论坛 (http://bbs.et8.net/bbs/index.php)

 
    VMware 虚拟机程序安装后同时会有4个服务打开,极大的消耗了系统资源,对我这样的铁公鸡来说实在不可忍受。若关闭了这4个服务, 右下角的托盘又会显示两个未接通的网络连接,很是烦人。
      因此考虑实现需要运行虚拟机时——自动启动服务、启用虚拟网卡,关闭程序后——自动停止服务、禁用虚拟网卡。

一、禁用/启用网卡的实现
通过微软测试硬件驱动程序 devcon.exe 实现。
虚拟网卡的硬件 ID 为:*vmnetadapter1 和 *vmnetadapter8
通过下面命令启用虚拟网卡:
devcon.exe enable *vmnetadapter1
devcon.exe enable *vmnetadapter8
通过下面命令禁用虚拟网卡:
devcon.exe disable *vmnetadapter1
devcon.exe disable *vmnetadapter8

二、随程序 自动启动 和 关闭服务 的实现
实现 自动启动 和 关闭服务 有很多办法,这里介绍两种办法(BctchRun和Autoit),在分别介绍前先来做以下预备工作:

安装完 VMware 后,把原为自动启动的4个服务设为手动,或用下面的批处理:
引用:

sc config VMAuthdService start= demand
sc config VMnetDHCP start= demand
sc config "VMware NAT Service" start= demand
sc config vmount2 start= demand
net stop VMAuthdService
net stop VMnetDHCP
net stop "VMware NAT Service"
net stop vmount2

保存下面内容为一个批处理文件VM.bat
引用:

net start VMAuthdService
net start VMnetDHCP
net start "VMware NAT Service"
net start vmount2
devcon.exe enable *vmnetadapter1
devcon.exe enable *vmnetadapter8

保存下面内容为另一个批处理文件VM_Stop.bat
引用:

net stop VMAuthdService
net stop VMnetDHCP
net stop "VMware NAT Service"
net stop vmount2
devcon.exe disable *vmnetadapter1
devcon.exe disable *vmnetadapter8

1、用 BatchRun 实现:
这个软件以前介绍过,应用起来也很简单。
汉化新世纪有汉化版:hxxp://www.hanzify.org/index.php?Go=Show::List&ID=2398
如图设置,分别添加3条记录,注意第二条中选中 Wait until end 。保存为 VM.brs
在 BatchRun 中设置关联 brs 文件后可以直接运行。

2、用Auto it 实现:
保存下面代码为 Run&Exit_VM.au3
引用:

AutoItSetOption ( "TrayIconHide", 1 )
Run("D:VM.bat")
Runwait("C:Program FilesVMwareVMware Workstationvmware.exe")
Run("D:VM_Stop.bat")

同样用AutoIt3.exe 关联.au3 文件后也可以直接运行。
还可以直接打包成可执行文件。

附件分别为两种解决方案源代码文件,代码中软件目录需要自己调整。Autoit包括一个已生成的可执行文件(注意使用VM_run.exe时需要把所有文件释放至 C:Program FilesVMware 目录下才可以。)
 

 


LeoDou2006-01-25 14:26

引用:

作者: 缓存
俺是直接把VM的服务关了, 网卡禁了.


但这样使用 VM 时要手工把服务和网卡打开,很麻烦。

我的只是把这一过程自动化了。
启动程序时,自动启动服务和网卡,关闭程序时自动关闭服务、禁用网卡。



gavotte2006-01-25 17:07

只用Admin权限用户使用VMWare不需要VMAuthdService,可以直接禁掉。
虚拟机配静态IP,那个DHCP也可以禁掉。
如果启用ICS服务,NAT和DHCP服务都可以禁掉。

 

作者: Limpo
这个想法确实不错,一直想对VMWare下手。
不过lz的AutoIt方法何必还带几个批处理文件呢?一个au3就可以全部搞定了。

确实。只不过几个批处理是早就做好的。顺便一用。没有深研Autoit.

 Limpo 在上面基础上做的Autoit 脚本,完全使用Autoit 解决:
Limpo2006-01-25 19:41
那就顺手了,多谢lz解决了这个烦人的问题。
代码:

;TraySetIcon("C:Program FilesVMwareVMware Workstationicoconfig.ico");
TrayTip("VMWare", "启动服务“VMware Authorization Service”", 10, 1)
RunWait(@ComSpec & " /c " & "net start VMAuthdService", "", @SW_HIDE)
TrayTip("VMWare", "启动服务“VMware DHCP Service”", 10, 1)
RunWait(@ComSpec & " /c " & "net start VMnetDHCP", "", @SW_HIDE)
TrayTip("VMWare", "启动服务“VMware NAT Service”", 10, 1)
RunWait(@ComSpec & " /c " & 'net start "VMware NAT Service"', "", @SW_HIDE)
TrayTip("VMWare", "启动服务“VMware NAT Service”", 10, 1)
RunWait(@ComSpec & " /c " & "net start vmount2", "", @SW_HIDE)
TrayTip("VMWare", "启动连接“VMware Network Adapter VMnet1”", 10, 1)
RunWait("devcon.exe enable *vmnetadapter1", "", @SW_HIDE)
TrayTip("VMWare", "启动连接“VMware Network Adapter VMnet8”", 10, 1)
RunWait("devcon.exe enable *vmnetadapter8", "", @SW_HIDE)
TrayTip("VMWare", "", 10, 1)
RunWait("C:Program FilesVMwareVMware Workstationvmware.exe")
TrayTip("VMWare", "停止服务“VMware Authorization Service”", 10, 1)
RunWait(@ComSpec & " /c " & "net stop VMAuthdService", "", @SW_HIDE)
TrayTip("VMWare", "停止服务“VMware DHCP Service”", 10, 1)
RunWait(@ComSpec & " /c " & "net stop VMnetDHCP", "", @SW_HIDE)
TrayTip("VMWare", "停止服务“VMware NAT Service”", 10, 1)
RunWait(@ComSpec & " /c " & 'net stop "VMware NAT Service"', "", @SW_HIDE)
TrayTip("VMWare", "停止服务“VMware NAT Service”", 10, 1)
RunWait(@ComSpec & " /c " & "net stop vmount2", "", @SW_HIDE)
TrayTip("VMWare", "停止连接“VMware Network Adapter VMnet1”", 10, 1)
RunWait("devcon.exe disable *vmnetadapter1", "", @SW_HIDE)
TrayTip("VMWare", "停止连接“VMware Network Adapter VMnet8”", 10, 1)
RunWait("devcon.exe disable *vmnetadapter8", "", @SW_HIDE)


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值