Parallels Desktop不提供虚拟机内定时任务的图形化入口,需通过两种方式实现:一是在Windows/Linux虚拟机内使用原生机制(如任务计划程序或cron),二是在macOS宿主机上用launchd或Automator调用prlctl命令控制虚拟机启停;操作时须注意时间同步、权限配置及路径有效性。
parallels desktop 本身不直接提供“在虚拟机内部系统中设置定时任务”的图形化入口,但你可以通过两种路径实现:一是在 windows 或 linux 虚拟机内部使用原生定时机制(如 windows 任务计划程序、linux cron),二是在宿主 mac 系统上用 macos 的 launchd 或 automator 触发 parallels 命令行工具控制虚拟机启停或运行脚本。关键在于区分“虚拟机内定时任务”和“宿主对虚拟机的定时操作”。
在 Windows 虚拟机内设置定时关机或运行程序
这是最常用的方式,适用于需要虚拟机操作系统自身按计划执行操作的场景:
- 打开 Windows 虚拟机,进入“任务计划程序”(Task Scheduler)
- 创建基本任务,触发器设为每天/每周/登录时等,操作选择“启动程序”
- 关机命令可填:shutdown /s /t 0(立即关机)或 shutdown /s /t 300(5分钟后关机)
- 若需运行脚本或批处理,确保文件路径为 Windows 可访问路径(如 C:\Scripts\cleanup.bat),并勾选“不管用户是否登录都要运行”且配置好用户权限
- 注意:启用该任务前,建议先手动运行一次验证效果;若虚拟机处于休眠或挂起状态,任务不会触发
在 macOS 宿主机上定时控制 Parallels 虚拟机
适合统一管理多台虚拟机、或需在 Mac 启动/睡眠前后自动干预虚拟机状态的情况:
- 确保已安装 Parallels Command Line Tools(在 Parallels Desktop 菜单 → “安装命令行工具”)
- 使用 macOS 的 launchd 创建 plist 文件,例如每天 23:00 关闭指定虚拟机:
prlctl stop "Windows 11" - 也可配合 Automator 制作“应用程序”,再用“日历提醒”或“快捷指令”触发,适合不熟悉命令行的用户
- 支持的操作命令包括:prlctl start/stop/suspend/resume,以及 prl_exec 在运行中的虚拟机里执行命令(如 prl_exec "Windows 11" -- winexe "cmd /c echo hello")
- 虚拟机名称必须与 Parallels Desktop 中显示的完全一致(区分大小写、含空格)
Linux 虚拟机中配置 cron 定时任务
适用于开发测试、服务器类场景,操作贴近原生 Linux 环境:
- 以目标用户身份登录虚拟机终端,运行 crontab -e
- 添加一行,例如每晚 22:30 关机:30 22 * * * /sbin/shutdown -h now
- 如需执行自定义脚本,先赋予执行权限:chmod +x /home/user/script.sh,再在 cron 中调用
- 注意:cron 默认使用 /bin/sh,若脚本依赖 bash 特性,首行需写 #!/bin/bash,并在 cron 中显式调用:30 22 * * * /bin/bash /home/user/script.sh
- 日志可通过重定向追加到文件排查,例如:30 22 * * * /sbin/shutdown -h now >> /var/log/cron-shutdown.log 2>&1
注意事项与常见问题
无论采用哪种方式,以下细节容易影响定时任务稳定执行:
- 虚拟机时间需与 macOS 宿主机同步——在 Parallels Desktop 设置中启用“与 Mac 同步时间”,否则 cron 或任务计划可能错时
- Windows 虚拟机若启用“快速启动”(Hybrid Boot),关机实际是休眠,会导致定时关机失效;建议在电源选项中关闭该功能
- Parallels Desktop 免费版不包含命令行工具,Pro/Business/Enterprise 版才完整支持 prlctl 等功能
- 使用 prl_exec 执行 Windows 命令时,需确保虚拟机已登录用户会话(即非锁屏状态),否则多数 GUI 相关命令无效
- 定时任务若涉及文件读写,请确认路径在虚拟机内有效,不要误用 Mac 的路径(如 /Users/xxx 不在 Windows 中存在)

















