安装了虚拟机 任务管理器会出现vmware-hostd.exe 占用了80端口,导致xampp打不开,所以就想关闭vmware,解决方案如下:
开始——运行——services.msc,找到VM打头的服务,改为手动,并停止服务。
以下内容转自:
http://bbs.cfanclub.net/thread-497122-1-1.html
其中 要用VM虚拟机的时候 VMware Authorization Service是必须开启的。VMware DHCP Service、VMware NAT Service是跟网络有关的。不开启虚拟机用不了网络。VMware Agent Service和VMware USB Arbitration Service设置为手动就可以,用虚拟机的时候一般也不用启动。还有2个网络连接VMware Network Adapter VMnet1、VMware Network Adapter VMnet8
这两个要是不用虚拟机的话也用不到。一会就和那些服务一起开启和禁止。
这两个要是不用虚拟机的话也用不到。一会就和那些服务一起开启和禁止。
下面说语句
启动停止服务的语句 net start/stop "服务名称" (ps:填写的是服务名称 不是显示名称这个别搞错了)
开启禁止网络连接的语句 netsh interface set interface "网络连接名" enable/disable
(""这个引号最好带上,为了避免不必要的麻烦。)
也就是说 简单的 代码就是
启动的
复制代码
禁止的
复制代码
echo 后面加的是你想说的话。。。这些就随便了。
总之代码简单来说就是这样了。
这样两个简单的批处理文件,就解决这些问题了。
(PS:如果Win7系统下运行请右键选择 以管理员身份运行 否则将会出现错误5!)
如果还麻烦可以把这两个合成一个。
下面是我现在用的
复制代码
加了个 检测服务是否开启 都是一些简单的语句。
如果不爱自己写的 可以把 代码直接复制到记事本里 把 文件名改为 VMware虚拟机服务、网络连接.bat 就OK。
启动停止服务的语句 net start/stop "服务名称" (ps:填写的是服务名称 不是显示名称这个别搞错了)
开启禁止网络连接的语句 netsh interface set interface "网络连接名" enable/disable
(""这个引号最好带上,为了避免不必要的麻烦。)
也就是说 简单的 代码就是
启动的
- @echo off
- echo 正在启用服务...
- net start "VMAuthdService"
- net start "VMnetDHCP"
- net start "VMware NAT Service"
- echo 正在启用网络连接...
- netsh interface set interface "VMware Network Adapter VMnet1" enable
- netsh interface set interface "VMware Network Adapter VMnet8" enable
- echo 网络连接VMware Network Adapter VMnet1、VMware Network Adapter VMnet8启动成功...
- pause
- @echo off
- echo 正在禁用服务服务...
- net stop "VMAuthdService"
- net stop "VMnetDHCP"
- net stop "VMware NAT Service"
- echo 正在禁用网络连接...
- netsh interface set interface "VMware Network Adapter VMnet1" disable
- netsh interface set interface "VMware Network Adapter VMnet8" disable
- echo 网络连接VMware Network Adapter VMnet1、VMware Network Adapter VMnet8禁用成功...
- pause
总之代码简单来说就是这样了。
这样两个简单的批处理文件,就解决这些问题了。
(PS:如果Win7系统下运行请右键选择 以管理员身份运行 否则将会出现错误5!)
如果还麻烦可以把这两个合成一个。
下面是我现在用的
- @echo off
- for /f "skip=3 tokens=4" %%i in ('sc query "VMAuthdService"') do set "zt=%%i" &goto :next
- :next
- if /i "%zt%"=="RUNNING" (
- echo 服务VMware Authorization Service正在运行
- ) else (
- echo 服务VMware Authorization Service已停止
- )
- for /f "skip=3 tokens=4" %%i in ('sc query "VMnetDHCP"') do set "zt=%%i" &goto :next
- :next
- if /i "%zt%"=="RUNNING" (
- echo 服务VMware DHCP Service正在运行
- ) else (
- echo 服务VMware DHCP Service已停止
- )
- for /f "skip=3 tokens=4" %%i in ('sc query "VMware NAT Service"') do set "zt=%%i" &goto :next
- :next
- if /i "%zt%"=="RUNNING" (
- echo 服务VMware NAT Service正在运行
- ) else (
- echo 服务VMware NAT Service已停止
- )
- pause
- echo 1:启用VM虚拟机服务(VMware Authorization Service、VMware DHCP Service、VMware NAT Service)及网络连接(VMware Network
- Adapter VMnet1、VMware Network Adapter VMnet8)
- echo 2:禁用VM虚拟机服务(VMware Authorization Service、VMware DHCP Service、VMware NAT Service)及网络连接(VMware Network
- Adapter VMnet1、VMware Network Adapter VMnet8)
- choice /c:12 /m "根据选项请选择..."
- if errorlevel 2 goto two
- if errorlevel 1 goto one
- :one
- echo 正在启用服务...
- net start "VMAuthdService"
- net start "VMnetDHCP"
- net start "VMware NAT Service"
- echo 正在启用网络连接...
- netsh interface set interface "VMware Network Adapter VMnet1" enable
- netsh interface set interface "VMware Network Adapter VMnet8" enable
- echo 网络连接VMware Network Adapter VMnet1、VMware Network Adapter VMnet8启动成功...
- echo 按任意键退出...
- pause>nul
- exit
- :two
- echo 正在禁用服务服务...
- net stop "VMAuthdService"
- net stop "VMnetDHCP"
- net stop "VMware NAT Service"
- echo 正在禁用网络连接...
- netsh interface set interface "VMware Network Adapter VMnet1" disable
- netsh interface set interface "VMware Network Adapter VMnet8" disable
- echo 网络连接VMware Network Adapter VMnet1、VMware Network Adapter VMnet8禁用成功...
- echo 按任意键退出...
- pause>nul
- exit
如果不爱自己写的 可以把 代码直接复制到记事本里 把 文件名改为 VMware虚拟机服务、网络连接.bat 就OK。
=======================================================================================
现在用VMware虚拟机的可能多数还是使用的NAT网络方式,这个方式需要启动两个服务:vmnat和vmdhcp。如果让它们作为自动服务,开机就启动个人比较不喜欢。所以想办法让服务在用虚拟机的时候启动,退出的时候停止。
Windows的net start/stop命令可以启动停止服务。所以就写了个bat脚本来做这个事情:
vmstart.bat:
------------------
net start "VMware DHCP Service"
net start "VMware NAT Service"
vmplayer
net stop "VMware DHCP Service"
net stop "VMware NAT Service"
-------------------
**记得把那两个服务(vmnat和vmdhcp)改成手动,可以把vmauth这个禁用掉。**
**我用的VMplayer,你用VMware Station就改成vmware。 **
vmstart.bat:
------------------
net start "VMware DHCP Service"
net start "VMware NAT Service"
vmplayer
net stop "VMware DHCP Service"
net stop "VMware NAT Service"
-------------------
**记得把那两个服务(vmnat和vmdhcp)改成手动,可以把vmauth这个禁用掉。**
**我用的VMplayer,你用VMware Station就改成vmware。 **
这样子,执行这个bat就启动服务,运行虚拟机,然后会等虚拟机退出,之后停止服务。代价是背后有个cmd.exe在等待虚拟机退出,看不见,不影响什么。
但是在执行bat时会出现一下cmd的黑框框,想不让出现,所以我写了个几行的Win32程序调用ShellExecute()执行bat,并传SW_HIDE参数,就可以不显示黑框了。后来在网上发现别人用VBScript实现更简单:
runbat.vbs:
----------------------
dim wsh
if WScript.Arguments.Count <> 1 then
MsgBox "没有指定要执行的bat!"
WScript.Quit(-1)
end if
set wsh=WScript.CreateObject("WScript.Shell")
wsh.Run WScript.Arguments(0), SW_HIDE, FALSE
----------------------
runbat.vbs:
----------------------
dim wsh
if WScript.Arguments.Count <> 1 then
MsgBox "没有指定要执行的bat!"
WScript.Quit(-1)
end if
set wsh=WScript.CreateObject("WScript.Shell")
wsh.Run WScript.Arguments(0), SW_HIDE, FALSE
----------------------
好了,把这两个文件放到VMPlayer/VMware
Station的目录下面,创建个快捷方式,写上:
runbat.vbs vmstart.bat
runbat.vbs vmstart.bat
这就可以了,不过还可以把快捷方式的图标改成虚拟机的图标。
以后启动虚拟机打开这个快捷方式就行了。虽然麻烦了一下,但一劳永逸的事情何乐而不为 :)
P.S. 也可以把这个启动服务的方法用到其他软件上。
P.S.
使用VMPlayer是免费的,不需要注册码,但VMPlayer不能创建和修改虚拟机。
P.S. 新的VMPlayer 2和VMware Station
v6体积大了不少,发现主要是里面的linux.iso大了很多,是linux guest的vmware-tools。之前用vmware
v5的时候发现debian和ubuntu好像装vmware-tools编译会出错,提示版本不匹配什么的。用这个版本的好了。而且用vmware
v5.x时我的XP在登录时经常要等好久,用这些新版本好像没问题了。
P.S. vmware-tools:安装与uname
-r版本一致的linux-headers,我是先dist-upgrade了一下才有匹配的。似乎还要make
include/linux/version.h生成这个文件。
P.S. 把vmware station
v6的vmware.exe拷到VMPlayer的目录里去,就可以运行vmware.exe建立和修改虚拟机了,但不能运行,反正我们平时用VMPlayer运行。
P.S. again... 我经常开了虚拟机然后用putty登录虚拟机,因为我没装X
window。(设置UTF-8编码,putty还可以控制台显示和输入汉字。推荐用fixed sys字体。)我因此想把虚拟机隐藏到托盘,据说VMware
Station v6有这个功能,但VMPlayer没有 :( 。可以考虑下PowerMenu这个小软件。但又多了一个累赘...