转至:http://www.cnblogs.com/top5/archive/2012/01/19/2326234.html

测试环境:
Host OS: Windows 7 x64

Guest OS: Ubuntu、Windows XP
开启远程登录,并设置用户密码,XP用control userpasswords2设置自动登录(取消“要使
用本机,用户必需输入服务器密码”)

虚拟机软件:VirtualBox-4.0.2-69518-Win

目的:开机后自动后台运行虚拟机,只有进程,不显示GUI界面。

由于VMware Server 2只支持到Windows 2008 Server系统,Windows 7系统不便使用,即使
能安装也可能会有问题。VMware Workstation不免费,本身也没有后台运行虚拟机的功能,
只能通过第三方软件把启动虚拟机做成系统服务,或者设置了“在关闭后在后台运行电源
已打开的虚拟机”用批处理启动虚拟机再杀进程,或者用计划任务。因此选择使用免费的
VirtualBox。

后台启动VirtualBox虚拟机的命令有2个:
VBoxHeadless -s|--startvm <uuid>|<name> [--vrde=on|off|config]
VirtualBox 1.6后的版本里,VBoxVRDP只是VBoxHeadless的快捷方式,不再是单独的命令。
防止VRDP端口(虚拟机设置里的远程桌面)被外界访问到,用参数--vrde=off,虚拟机用桥接
网络时,虚拟机系统自带的远程桌面不受此参数影响。

VBoxManage [-q|--nologo] startvm <uuid>|<name> [--type gui|sdl|headless]
The following values are allowed:
gui - Starts a VM showing a GUI window. This is the default.
headless - Starts a VM without a window for remote display only.

启动虚拟机的脚本(虚拟机的名称为XP):
@echo off
:: by oicu
cd /d "D:\Program Files\Oracle\VirtualBox"
VBoxHeadless --startvm "XP"
:: VBoxManage startvm "XP" --type headless

直接启动批处理脚本的话(包括脚本放到“启动”里),无论用哪条命令启动虚拟机都会有
一个headless的cmd窗口,用start ""也不能消去,关闭了该cmd窗口后虚拟机也退出了,而
且属于不正常关闭。可以一次启动多个虚拟机系统。

关闭虚拟机的脚本:
@echo off
:: by oicu
cd /d "D:\Program Files\Oracle\VirtualBox"
VBoxManage controlvm "XP" acpipowerbutton
:: send {Enter} to VM, for Windows Guest OS only.
VBoxManage controlvm "XP" keyboardputscancode 1c

打开gpedit.msc组策略,在用户的登录/注销脚本里,分别添加上面2个脚本。这里不能使用
计算机的启动/关机脚本,测试过是不能启动虚拟机的,可能和SYSTEM用户执行的脚本不能
访问网络等权限有关。使用登录脚本启动虚拟机不会显示headless的cmd窗口(系统组策略
里默认是隐藏运行脚本),未测试计划任务的方式。

远程登录Windows系统的虚拟机后,如果远程未注销,用关闭虚拟机的脚本就无法关闭虚拟
机,原因是关闭计算机时会提示“其他用户登录到这台计算机,关闭WINDOWS会使他们丢失
数据,您要继续关机吗?”造成acpi关机方式失败。在Guest系统里设置关机/注销脚本,用
shutdown -s -t 0也无效。解决方法是向虚拟机发送回车键,模拟“确定”操作,当然也可
以用shutdown远程关闭系统,但设置和操作更麻烦了。

虚拟机是Linux时,避免用VboxHeadless.exe和VirtualBox.exe交替登录,两者的不同步可
能会造成虚拟机的filesystem损坏。

让VirtualBox虚拟机实现开机自动后台运行的更多相关文章

  1. Windows Redis 开机启动后台运行

    1. 从 Redis 的安装目录进入 cmd 2. 在 cmd 中输入, 将Redis绑定为 Windows 服务, 并设置为后台启动: redis-server --service-install ...

  2. tomcat 开机后台运行

    引用:http://jingyan.baidu.com/article/a65957f4b12b8724e77f9b5a.html Tomcat是Apache 软件基金会(Apache Softwar ...

  3. win7下 VirtualBox虚拟机开机后台自启动

    win7下安装个linux虚拟机,学习下非常好. 但是每次使用linux的时候,都是打开virtualBox-->启动安装的linux系统-->再用远程桌面(SSH等)连接 每次手动打开比 ...

  4. 将VirtualBox里安装的虚拟机在后台运行方法(在状态栏隐藏窗口)

    由于工作和学习需要,经常要开一个虚拟机开测试和开发,虚拟机我选择Oracle公司的VirtualBox(用了几年了,感觉不错的一款产品),经常开着这个窗口感觉有些浪费资源,这样隐藏窗口就在需求了. 将 ...

  5. VirtualBox虚拟机运行Ubuntu如何不卡

    VirtualBox虚拟机运行Ubuntu如何不卡 转自http://www.xuzefeng.com/post/85.html 上一篇文章<VirtualBox虚拟机安装Ubuntu详细教程& ...

  6. Android---让你的APK程序开机自动运行(转)

    转自: http://blog.sina.com.cn/s/blog_72f6e45701014l6t.html 有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service. ...

  7. 设置tomcat开机自启和后台运行

    前言:程序登录遇到了问题,重启服务器上的tomcat后程序可以正常的使用,是通过进入bin目录,双击startup.bat运行启动的程序,此时会弹出启动窗口,而且该窗口不能关闭,这个窗口是tomcat ...

  8. Vbox隐藏虚拟机,实现后台运行

    Vbox隐藏虚拟机,实现后台运行   1.进入vBox安装位置的命令行 D:\Program Files\VirtualBox> 2.执行命令: .\VBoxManage startvm Xp_ ...

  9. tomcat设置开机自启动和后台运行

    前言:当浏览器页面显示不出来的时候,重启装在服务器上的tomcat可以正常使用,是通过进入tomcat的bin目录,双击startup.bat运行启动的程序,这时会弹出启动窗口(tomcat的运行日志 ...

随机推荐

  1. 小白学数据分析--聚类分析理论之K-means理论篇

    小白学数据分析--聚类分析理论之K-means理论篇 聚类分析是一类广泛被应用的分析方法,其算法众多,目前像SAS.Splus.SPSS.SPSS Modeler等分析工具均以支持聚类分析,但是如何使 ...

  2. axios 获取不到数据错误

    1.问题: 打算学习下vue,但是vue-resource作者已经不更新了,并且大家都建议用axios来进行前后端交互,所以就从学习axios开始. 但是在使用 axios 的过程中,自己写的接口竟然 ...

  3. 【ABAP系列】SAP 生产订单完工确认(CO11N) BAPI : BAPI_PRODORDCONF_CREATE_TT

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 生产订单完工确认(CO1 ...

  4. TensorFlow学习笔记5-概率与信息论

    TensorFlow学习笔记5-概率与信息论 本笔记内容为"概率与信息论的基础知识".内容主要参考<Deep Learning>中文版. \(X\)表示训练集的设计矩阵 ...

  5. C++ 全面刨析使用指针方法 _new _delete

    指针 #include<iostream> using namespace std; int main() { ; int* pn;//声明 int* pn = &avr;//初始 ...

  6. 使用autofac的一些问题

    None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on ...

  7. Java第三周总结&实验报告(1)

    总结:不知不觉,到了第三周,回顾这一周,我更加深入了解了main方法,除此之外,学习了两个关键字,一个this,一个static,this在强调属性时,只能放在句首且不能循环调用,static声明用于 ...

  8. Mock接口数据 = mock服务 + iptable配置

    一.mock接口数据应用场景: 1.测试接口A,A接口代码中调用其他服务的B接口,由于开发排期.测试环境不通等原因,依赖接口不可用 2.测试异常情况,依赖接口B返回的数据格式不对.返回None.超时等 ...

  9. django 中 slice 和 truncatewords 不同用法???

    django中取一段字符串中的前 N 个字符,可以用 slice和truncatewords ,但是两者是有区别的. django的 模板过滤器 truncatewords ,取这个模板变量的前 N ...

  10. 游戏服务端pomelo完整安装配置过程

    版权声明:本文为博主原创文章,转载或又一次发表请先与我联系. https://blog.csdn.net/jonahzheng/article/details/27658985 游戏服务端pomelo ...