VMware虛擬機服務的vmware-hostd自動啓動和中止

安裝了虛擬機 任務管理器會出現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 VMnet一、VMware Network Adapter VMnet8
這兩個要是不用虛擬機的話也用不到。一會就和那些服務一塊兒開啓和禁止。
下面說語句
啓動中止服務的語句 net start/stop \"服務名稱\" (ps:填寫的是服務名稱 不是顯示名稱這個別搞錯了)
開啓禁止網絡鏈接的語句 netsh interface set interface \"網絡鏈接名\" enable/disable
(\"\"這個引號最好帶上,爲了不沒必要要的麻煩。)
也就是說 簡單的 代碼就是
啓動的
  1. @echo off
  2. echo 正在啓用服務...
  3. net start \"VMAuthdService\"
  4. net start \"VMnetDHCP\"
  5. net start \"VMware NAT Service\"
  6. echo 正在啓用網絡鏈接...
  7. netsh interface set interface \"VMware Network Adapter VMnet1\" enable
  8. netsh interface set interface \"VMware Network Adapter VMnet8\" enable
  9. echo 網絡鏈接VMware Network Adapter VMnet一、VMware Network Adapter VMnet8啓動成功...
  10. pause
複製代碼
禁止的
  1. @echo off
  2. echo 正在禁用服務服務...
  3. net stop \"VMAuthdService\"
  4. net stop \"VMnetDHCP\"
  5. net stop \"VMware NAT Service\"
  6. echo 正在禁用網絡鏈接...
  7. netsh interface set interface \"VMware Network Adapter VMnet1\" disable
  8. netsh interface set interface \"VMware Network Adapter VMnet8\" disable
  9. echo 網絡鏈接VMware Network Adapter VMnet一、VMware Network Adapter VMnet8禁用成功...
  10. pause
複製代碼
echo 後面加的是你想說的話。。。這些就隨便了。
總之代碼簡單來講就是這樣了。
這樣兩個簡單的批處理文件,就解決這些問題了。
(PS:若是Win7系統下運行請右鍵選擇 以管理員身份運行 不然將會出現錯誤5!)
若是還麻煩能夠把這兩個合成一個。
下面是我如今用的
  1. @echo off
  2. for /f \"skip=3 tokens=4\" %%i in ('sc query \"VMAuthdService\"') do set \"zt=%%i\" &goto :next
  3. :next
  4. if /i \"%zt%\"==\"RUNNING\" (
  5. echo 服務VMware Authorization Service正在運行
  6. ) else (
  7. echo 服務VMware Authorization Service已中止
  8. )
  9. for /f \"skip=3 tokens=4\" %%i in ('sc query \"VMnetDHCP\"') do set \"zt=%%i\" &goto :next
  10. :next
  11. if /i \"%zt%\"==\"RUNNING\" (
  12. echo 服務VMware DHCP Service正在運行
  13. ) else (
  14. echo 服務VMware DHCP Service已中止
  15. )
  16. for /f \"skip=3 tokens=4\" %%i in ('sc query \"VMware NAT Service\"') do set \"zt=%%i\" &goto :next
  17. :next
  18. if /i \"%zt%\"==\"RUNNING\" (
  19. echo 服務VMware NAT Service正在運行
  20. ) else (
  21. echo 服務VMware NAT Service已中止
  22. )
  23. pause
  24. echo 1:啓用VM虛擬機服務(VMware Authorization Service、VMware DHCP Service、VMware NAT Service)及網絡鏈接(VMware Network
  25. Adapter VMnet一、VMware Network Adapter VMnet8)
  26. echo 2:禁用VM虛擬機服務(VMware Authorization Service、VMware DHCP Service、VMware NAT Service)及網絡鏈接(VMware Network
  27. Adapter VMnet一、VMware Network Adapter VMnet8)
  28. choice /c:12 /m \"根據選項請選擇...\"
  29. if errorlevel 2 goto two
  30. if errorlevel 1 goto one
  31. :one
  32. echo 正在啓用服務...
  33. net start \"VMAuthdService\"
  34. net start \"VMnetDHCP\"
  35. net start \"VMware NAT Service\"
  36. echo 正在啓用網絡鏈接...
  37. netsh interface set interface \"VMware Network Adapter VMnet1\" enable
  38. netsh interface set interface \"VMware Network Adapter VMnet8\" enable
  39. echo 網絡鏈接VMware Network Adapter VMnet一、VMware Network Adapter VMnet8啓動成功...
  40. echo 按任意鍵退出...
  41. pause>nul
  42. exit
  43. :two
  44. echo 正在禁用服務服務...
  45. net stop \"VMAuthdService\"
  46. net stop \"VMnetDHCP\"
  47. net stop \"VMware NAT Service\"
  48. echo 正在禁用網絡鏈接...
  49. netsh interface set interface \"VMware Network Adapter VMnet1\" disable
  50. netsh interface set interface \"VMware Network Adapter VMnet8\" disable
  51. echo 網絡鏈接VMware Network Adapter VMnet一、VMware Network Adapter VMnet8禁用成功...
  52. echo 按任意鍵退出...
  53. pause>nul
  54. 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。 **
這樣子,執行這個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
----------------------
好了,把這兩個文件放到VMPlayer/VMware Station的目錄下面,建立個快捷方式,寫上:
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這個小軟件。但又多了一個累贅...
相關文章
相關標籤/搜索