Windows宿主机与群晖虚拟机互相自动开关机
最近在Windows11上装了个群晖虚拟机,每次开关机都要手动操作,非常麻烦;而且VMware Workstation Player 17的UI在那里看着也很碍眼。于是搞了个自动化开关机的方法,特地分享给大家。
【一】环境
宿主机:Windows 11 专业版 + OpenSSH Server。
客户机:VMware Workstation Player 17 + 群晖 DSM7.2.2。
【二】Windows开机时自动后台自动启动虚拟机
1)进入Windows任务计划程序,新建计划任务,选择不管用户是否登录都要运行;
2)触发器选“启动时”,操作选“启动程序”,程序或脚本设置为如下文本,注意双引号不能少:
"C:\Program Files(x86)\VMware Player\vmrun.exe" -T player start "C:\VMWare\DSM\DSM.vmx" nogui
第一个引号里面的字符串是VMware Workstation Player 17的路径,第二个引号里面的字符串是群晖虚拟机的路径。设置好保存。
3)可以重启Windows测试看看,如果不出异常的化,Windows在启动过程中,即使Windows还未登录到桌面里面,虚拟机也已经在后台启动了,而且在Windows桌面上和任务栏里看不到任何VMware Workstation Player 17的运行界面,全自动默默开启虚拟机。
【三】关闭群晖时自动关闭Windows
这一步的目的是,采用手机群晖管家关闭群晖后,自动把Windows也关闭掉。
1)在群晖端生产密钥对
打开群晖的ssh开关,然后在Windows上打开Power Shell,通过ssh命令,用你的群晖账号登录到群晖:
ssh yourusername@群晖IP
后续按提示输入密码直到登录进去。
在ssh界面输入指令:
ssh-keygen -t rsa
后面看到提示,直接回车。一共三个提示,全部用回车应对。
继续用指令检查密钥对是否车工生成:
cd .ssh/
ll
如果看到id_rsa和id_rsa.pub,即说明成功了。
继续用指令查看公钥字符串:
cat id_rsa.pub
复制显示出来的所有字符串,然后新建文本文件,将字符出黏贴到文本文件内,将文本文件保存为公钥文件authorized_keys(注意没有扩展名)。
继续回到ssh,用指令修改私钥文件的权限:
sudo chmod 600 /var/services/homes/yourusername/.ssh/id_rsa
sudo chmod 700 /var/services/homes/yourusername/.ssh
2)将公钥文件authorized_keys复制到Windows的C:\Users\你的登录到windows的用户名\.ssh文件夹里面
3)配置Windows 上的OpenSSH Server
编辑C:\ProgramData\ssh\sshd_config文件,修改如下:
PubkeyAuthentition yes
AuthorizedKeyFile .ssh/authorized_keys
PasswordAuthentication no
其他行全部用#注释掉。确保在原位置保存修改后的文件。
进入Windows服务管理面板,将OpenSSH Server及其代理服务都设置为自动启动,并重启他们,确保重启后已经启动。
结束。