我的理解如下:
1、用instsrv新添加一个自定义服务名的服务,此服务关联着srvany程序;
2、srvany程序读注册表相应项,找到服务的主应用程序并按照注册表的参数执行它;
3、这个服务可以在services.msc中找到,可以设置开机自动启动。。
注册表文件这样写,写好了双击。(注册表文件后缀是reg)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服务名\Parameters]
"Application"="需要运行的程序的绝对路径和参数"
"AppParameters"="需要运行的程序启动时候的参数"
"AppDirectory"="需要运行的程序所在目录的绝对路径"
程序绝对路径举例——"C:\\Program Files (x86)\\VMware\\VMware Workstation\\vmware.exe"
启动参数举例——"-X -- D:\\vms\\C6-7.vmx"
目录绝对路径举例——"C:\\Program Files (x86)\\VMware\\VMware Workstation\\"
注意:我测试了很多次,只写一个 \ 是不行的,要用 \\ 写路径才成。X后面空一个格,两个半角减号后再空一个格,再写虚机配置文件绝对路径。 如果虚机配置文件名中有空格,如“E:\vms\vmware\centos\CentOS 64-bit.vmx”,就需要先双击这个reg文件在注册表中创建出条目,再启动regedit手动把AppParameters的值改成-X -- "E:\vms\vmware\centos\CentOS 64-bit.vmx" 其中英文半角双引号可以把文件名中的空格识别成一个整体。如果开机需要启动多个虚机,只需要在后面再添加多个vmx文件绝对路径即可。举例:将reg文件这行改成"AppParameters"="-X -- D:\\vms\\C6-7.vmx -X -- E:\\vms\\windows10.vmx" 同样的,如果配置文件名中有空格,需要去regedit里手动加上半角双引号否则无效别赖我没告诉你……我花了一个多小时试来试去的。用非administrator账户添加的服务,启动服务后,虚机从虚机控台中消失的问题我也不知道该如何解决。
双击这样一个reg文件以后就导入到注册表中了。接下来是建立服务。在cmd.exe中需要键入的命令是:
"instsrv.exe所在绝对路径" 服务名 "srvany.exe所在绝对路径"
举例:"C:\Program Files\Windows Resource Kits\Tools\instsrv.exe" vm_autopoweron "C:\instsrv\srvany.exe" 如此就建立了一个叫vm_autopoweron的服务。
没有instsrv包的,戳这儿下载
删除服务方法cmd中键入如下命令:
sc delete 服务名
本文转自 朱科强 51CTO博客,原文链接:http://blog.51cto.com/zhukeqiang/1727132,如需转载请自行联系原作者