Windows Sandbox 初体验
在 Windows 10 更新至五月更新(1903,18362)后,只要你的 Windows 10 版本是高于家庭版的,例如专业版、企业版等,你就可以在新版本的 Windows 上使用微软官方提供的 Windows Sandbox(Windows 沙盒)这个功能了。
需要注意的是,即使你的 Windows 10 不是家庭版,在更新后,Windows 10 并不会默认启用这一功能,即你需要手动在控制面板中启用这一功能。
在「控制面板 -> 应用和功能 -> 启用或关闭 Windows 功能」中我们可以找到「Windows 沙盒」这一功能。在更新后我们需要手动勾选这个功能,并等待系统自动安装。
安装好后系统会要求重新启动,在重启后我们就可以直接通过搜索找到 Windows Sandbox 了。
虽然它的名字是「Windows Sandbox」,但是它和之前那些「沙盒软件」以及一些杀毒软件自带的沙盒有些不同,这个 Windows 沙盒更像是一个虚拟机,它是一个纯净的系统环境,和主机完全隔离。
相较于传统的虚拟机,Windows 沙盒的优点是能够随开随用,不论是安装 Windows 沙盒的过程,还是启动 Windows 沙盒的过程都是非常快、非常迅速的,而传统的虚拟机则需要预先花费大量时间安装系统、设置快照等等。
Windows 沙盒则不需要做这些动作,开启就能用,关闭后沙盒内的所有内容就会被丢弃,再次开启后 Windows 沙盒内将会是一个全新的纯净环境。每次开启时它会利用现有的系统文件来启动一个新的 Windows 环境,所以我们也不需要担心磁盘空间和读写量的问题。
在 Windows 沙盒上微软使用的这个技术名为「动态镜像」,微软只保留了非常基础的 100MB 左右的文件作为 Windows 沙盒的基础,所有运行时需要的其他文件实际上是现有 Windows 的文件。
你可能会感到疑惑,这么做不会不安全吗?实际上并不会,因为微软基于硬件虚拟化技术保证了 Windows 沙盒与 Windows 10 主机本身是隔离的,而且两个系统运行在两个完全独立的内核上。
这意味着你在 Windows 沙盒内运行一些不安全的软件也是完全没有问题的,不过这并不意味着你能放松警惕,因为 Windows 沙盒仍然可能防不住一些借用漏洞或其他方式进行穿透沙盒攻击的危险物。
虽然是随用随开,但是毕竟这是一个全新的 Windows 环境,启动还是需要一定的时间。在笔者以 NVMe SSD 作为系统盘的情况下,启动时间大概在一两分钟左右,相较于虚拟机来说这已经是一个很不错的启动时间了,而且你还节约掉了配置虚拟机的大量时间。
进入 Windows 沙盒后,我们可以看到一个非常纯净的桌面,纯净到桌面上只有一个 Edge 和回收站的图标。
我们可以通过拖拽修改 Windows 沙盒窗口的大小,其内部 Windows 环境的分辨率也会基于我们对窗口大小的修改而改变。在这个环境下你不用担心它会和虚拟机类似,在你缩小窗口的时候,内部环境的内容会溢出窗口,在这一点上微软还是做得很人性化的。
有意思的是,微软显示桌面的方式和系统自带的远程桌面是一样的,Windows 沙盒的环境实际上是利用远程桌面连接上去的。虽然连接方式是「远程」,但是实际上两个环境都跑在同一台电脑上,只是利用虚拟化技术隔离了。
在 Windows 沙盒中 Windows 的很多功能都是被禁用了的,这主要是因为 Windows 沙盒为了追求性能运行的应该是一个极简的 Windows,经过笔者的测试,Windows 沙盒内甚至并不支持微软自家的、在 Windows 内置的 .Net Framework。
这也是 Windows 沙盒相较于虚拟机来说对开发者不太友好的一点了,它并不支持保留整个环境的中的文件,或者让用户自定义沙盒的模板,每次启动沙盒,沙盒都会自动地恢复到一个完全纯净的状态。
很多开发者开发的软件都或多或少在运行的时候需要一些依赖,这意味着如果你想使用 Windows 沙盒来测试软件,那么每次测试前你都需要部署一次相关的运行环境,对于开发者来说,这个效率就非常低了。
所以再次笔者不建议开发者使用 Windows 沙盒来测试软件,虚拟机在测试软件这方面还是有优势,除非你恰好需要在一个纯净的环境下对软件进行测试。
Windows 沙盒更多是被用来运行、调试一些具有潜在风险的软件,观察软件的行为,即使软件在运行后进行了一些危险操作,所有的操作都会随着 Windows 沙盒的关闭而被一并丢弃掉。
原则上绝大部分不信任的 .exe 都可以直接放到 Windows 沙盒里运行,只有少数很强悍的病毒在 Windows 沙盒中仍然会对主机造成威胁。
总体上 Windows 沙盒的体验还算是不错的,唯一一个缺憾是微软使用的是远程桌面这个形式来呈现它的桌面,而不是用一个虚拟的显示输出。这使得你的操作和整个画面的质量会受到远程桌面的影响,笔者在使用过程中有遇到过明显的操作延迟和画面突然模糊的情况。
性能方面,不论是内存占用还是运行速度,笔者对其都是特别满意的,尤其是内存占用,这个功能对于电脑内存不太足的朋友来说是一个福音。
笔者希望未来微软可以进一步拓展 Windows 沙盒的功能,让它能够更适合开发者使用,现在的 Windows 沙盒给笔者个人的感觉还是稍有些鸡肋的,它目前只适用于安全领域。
即使是用来运行可疑 exe,除非你想真正研究它,否则像笔者这种懒人可能会更倾向于使用腾讯哈勃这样的文件分析系统,而不是 Windows 沙盒。所以 Windows 沙盒的功能还是可以再进一步增强一下的。