找回密码
 立即注册
首页 业界区 科技 VMware服务一键启停脚本

VMware服务一键启停脚本

柏球侠 2025-9-24 18:50:28
背景介绍

很多VMware 用户可能都遇到过这样的困扰:即使不使用虚拟机,VMware的多个后台服务也会在开机时自动启动,长期占用系统资源。这些服务包括:

  • VMware Authorization Service
  • VMware DHCP Service
  • VMware NAT Service
  • VMware USB Arbitration Service
  • VMware Workstation Server
此外,VMware相关的网络适配器(VMnet1、VMnet8)也会一直保持活跃状态。尽管通过任务管理器关闭了VMware主程序,这些后台服务依然在悄悄运行,消耗着系统资源。
脚本功能

因此简单编写了以下这个批处理脚本提供了一个简单的解决方案:

  • 智能检测:自动检测当前VMware服务的运行状态
  • 一键切换

    • 如果服务正在运行,一键停止所有服务和网络适配器
    • 如果服务已停止,一键启动所有服务和程序

  • 完全清理:彻底终止所有VMware相关进程
  • 便捷操作:双击以管理员身份执行,无需手动选择
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 设置VMware路径变量
  4. set "VMWARE_PATH=D:\XXX\VMware\vmware.exe"
  5. set "running_count=0"
  6. set "total_services=5"
  7. REM 检查VMware Authorization Service状态
  8. for /f "skip=3 tokens=4" %%i in ('sc query "VMAuthdService"') do set "zt=%%i" & goto :check_auth
  9. :check_auth
  10. if /i "%zt%"=="RUNNING" (
  11.     echo 服务VMware Authorization Service正在运行
  12.     set /a running_count+=1
  13. ) else (
  14.     echo 服务VMware Authorization Service已停止
  15. )
  16. REM 检查VMware DHCP Service状态
  17. for /f "skip=3 tokens=4" %%i in ('sc query "VMnetDHCP"') do set "zt=%%i" & goto :check_dhcp
  18. :check_dhcp
  19. if /i "%zt%"=="RUNNING" (
  20.     echo 服务VMware DHCP Service正在运行
  21.     set /a running_count+=1
  22. ) else (
  23.     echo 服务VMware DHCP Service已停止
  24. )
  25. REM 检查VMware NAT Service状态
  26. for /f "skip=3 tokens=4" %%i in ('sc query "VMware NAT Service"') do set "zt=%%i" & goto :check_nat
  27. :check_nat
  28. if /i "%zt%"=="RUNNING" (
  29.     echo 服务VMware NAT Service正在运行
  30.     set /a running_count+=1
  31. ) else (
  32.     echo 服务VMware NAT Service已停止
  33. )
  34. REM 检查VMware USB Arbitration Service状态
  35. for /f "skip=3 tokens=4" %%i in ('sc query "VMUSBArbService"') do set "zt=%%i" & goto :check_usb
  36. :check_usb
  37. if /i "%zt%"=="RUNNING" (
  38.     echo 服务VMware USB Arbitration Service正在运行
  39.     set /a running_count+=1
  40. ) else (
  41.     echo 服务VMware USB Arbitration Service已停止
  42. )
  43. REM 检查VMware Workstation Server状态
  44. for /f "skip=3 tokens=4" %%i in ('sc query "VMwareHostd"') do set "zt=%%i" & goto :check_hostd
  45. :check_hostd
  46. if /i "%zt%"=="RUNNING" (
  47.     echo 服务VMware Workstation Server正在运行
  48.     set /a running_count+=1
  49. ) else (
  50.     echo 服务VMware Workstation Server已停止
  51. )
  52. echo 当前有 !running_count! 个VMware服务在运行(共 %total_services% 个)
  53. REM 根据服务状态自动决定启动或停止
  54. if !running_count! GTR 0 (
  55.     echo 检测到VMware服务正在运行,准备停止所有服务...
  56.    
  57.     echo 正在禁用服务...
  58.     net stop "VMAuthdService" 2>nul
  59.     net stop "VMnetDHCP" 2>nul
  60.     net stop "VMware NAT Service" 2>nul
  61.     net stop "VMUSBArbService" 2>nul
  62.     net stop "VMwareHostd" 2>nul
  63.    
  64.     echo 正在禁用网络连接...
  65.     netsh interface set interface "VMware Network Adapter VMnet1" disable 2>nul
  66.     netsh interface set interface "VMware Network Adapter VMnet8" disable 2>nul
  67.     echo 网络连接VMware Network Adapter VMnet1、VMware Network Adapter VMnet8禁用成功
  68.    
  69.     echo 正在结束进程...
  70.     taskkill /F /IM vmware-authd.exe /T 2>nul
  71.     taskkill /F /IM vmnetdhcp.exe /T 2>nul
  72.     taskkill /F /IM vmnat.exe /T 2>nul
  73.     taskkill /F /IM vmware-usbarbitrator64.exe /T 2>nul
  74.     taskkill /F /IM vmware-hostd.exe /T 2>nul
  75.     taskkill /F /IM vmware-tray.exe /T 2>nul
  76.     taskkill /F /IM vmware.exe /T 2>nul
  77.    
  78.     echo VMware服务已全部停止!
  79. ) else (
  80.     echo 检测到VMware服务已停止,准备启动所有服务...
  81.    
  82.     echo 正在启用服务...
  83.     net start "VMAuthdService" 2>nul
  84.     net start "VMnetDHCP" 2>nul
  85.     net start "VMware NAT Service" 2>nul
  86.     net start "VMUSBArbService" 2>nul
  87.     net start "VMwareHostd" 2>nul
  88.    
  89.     echo 正在启用网络连接...
  90.     netsh interface set interface "VMware Network Adapter VMnet1" enable 2>nul
  91.     netsh interface set interface "VMware Network Adapter VMnet8" enable 2>nul
  92.     echo 网络连接VMware Network Adapter VMnet1、VMware Network Adapter VMnet8启动成功
  93.    
  94.     echo 正在启动VMware...
  95.     start "" "%VMWARE_PATH%"
  96.    
  97.     echo VMware服务已全部启动!
  98. )
  99. timeout /t 3
  100. exit
复制代码
使用方法


  • 复制下载脚本并根据自己的VMware安装路径修改变量VMWARE_PATH
  • 双击以管理员身份执行
  • 脚本将自动检测VMware服务状态并执行相应操作
这个脚本特别适合那些像我一样不希望它一直占用系统资源的用户。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册