转至: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. 微信企业号 发送信息 shell

    微信企业号发送信息shell #可作为shell函数模块调用,用于微信通知.jenkins发版微信通知等等 # 微信API官方文档 https://work.weixin.qq.com/api/doc ...

  2. usb接口类型 简单分类辨识

    usb接口类型 简单分类辨识 - [相似百科] 庆欣 0.0 4 人赞同了该文章 1. 先放图,随着越来越多的接触智能设备,会遇到各种各样的usb接口,对于很多人来说,接口类型只有:usb接口,安卓接 ...

  3. js面向对象程序设计之继承

    在面向对象语言中继承分成两种:接口继承和实现继承.解释一下,接口继承只继承方法的签名,而实现继承则是继承实际的方法.但是ECMAScript中的函数没有签名所以无法进行接口继承,只能是实现实现继承.而 ...

  4. SoapUI学习之SOAP和REST的区别

    一.Soap和Rest的定义 SOAP(Simple Object Access Protocol 简单对象访问协议),用于在Web Service中把远程调用和返回封装成机器可读的格式化数据,事实上 ...

  5. Android之异步调用

    概述 AsyncTask可以很好的,准确的使用UI线程,他可以将一个比较耗时(几秒钟)的动作运行在后台,并且能将结果返回至UI线程中,不需要通过(Thread操作和Handler操作). 使用时必须通 ...

  6. [Web 前端] 002 html 常用行行级元素

    目录 1. html 常用的行级元素 1.1 链接标签 1.2 a 标签的锚点的使用 1.3 文本标签 1.4 无语义的行级元素 span 1.5 html 中的实体字符 1. html 常用的行级元 ...

  7. Centos6.8忘记MySQL数据库root密码解决方法

    一.更改MySQL配置文件my.cnf,跳过密码验证. 编辑配置文件/etc/my.cnf文件,在[mysqld]下面添加skip-grant-tables,保存退出.如图: vim /etc/my. ...

  8. CocosCreator与Laya2.0区别

    1图集: Laya:直接拖拽res里面的图片,当生成图集后,会自动优先使用图集的 Cocos:应该先打图集,且图集里的图就是图集里的图,资源里的图就是资源里的.2者不同 addChild Laya:会 ...

  9. python的cls,self,classmethod,staticmethod

    python类里会出现这三个单词,self和cls都可以用别的单词代替,类的方法有三种, 一是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问 ...

  10. Feign负载均衡

    Feign是一个声明式的Web Service客户端,比Ribbon好用,默认也是轮巡.我们只需要使用Feign创建一个接口,并用注解就好了.如果你基于spring cloud发布一个接口,实际上就是 ...