Windows Sandbox 应用

发布于: 2020 年 07 月 19 日

回顾

上篇文章简要介绍了Windows Sandbox的特性及安装, 作为Windows原生沙盒系统,提供了系统层隔离及非持久化这两个核心功能。

宿主机及沙盒互通

沙盒系统提供了系统层的隔离和安全性,但在隔离的同时也需要和宿主系统建立一定程度的互通,否则它存在的意义及应用场合就极为有限了。

沙盒系统与宿主之间可以通过以下几种方式实现文件及数据交互。

剪切板

无需赘述,宿主机与Sandbox之间可以共享剪切板数据。

网络服务(FTP或HTTP等)

Sandbox与宿主机之间通过Hyper-V虚拟网卡相连,二者所在网段可以互通。

在Sandbox中, 网卡分配到了192.168.139.40/20网段, 网关地址192.168.128.1。

宿主机中的虚拟网卡分配到了地址192.168.128.1/20, 也即Sandbox的缺省网关。

通过虚拟网络,宿主机和Sandbox可以互相访问对方提供的网络服务。

共享文件夹

宿主机中的文件目录可以以只读或读写方式映射进Sandbox环境中。文件夹映射功能需要提供Sandbox启动配置文件开启。

启动配置

Sandbox接受wsb文件扩展的配置文件,文件格式为XML。

通过定制wsb文件,可以设置如下几个沙盒选项:

  • 启用关闭vGPU

  • 启用关闭网络连接

  • 启用关闭音频输入

  • 共用宿主打印机

  • 启用关闭剪切板重定向

以下启动配置文件分别从宿主系统中映射了一个只读和一个读写目录进入Sandbox环境。如不指定SandboxFolder, 则目录会被映射到沙盒环境的桌面。

<?xml version="1.0" ?>
<Configuration>
  <vGPU>Enable</vGPU>
  <Networking>Default</Networking>
  <AudioInput>Enable</AudioInput>
  <PrinterRedirection>Enable</PrinterRedirection>
  <ClipboardRedirection>Default</ClipboardRedirection>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>D:\Projects\SandboxScripts</HostFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
    <MappedFolder>
      <HostFolder>D:\sources</HostFolder>
      <SandboxFolder>C:\sources</SandboxFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>C:\Users\WDAGUtilityAccount\Desktop\SandboxScripts\autostart.cmd</Command>
  </LogonCommand>
</Configuration

沙盒启动后会立即执行一个cmd脚本,例子中的cmd脚本其实是从宿主目录映射进入沙盒环境的文件。

REM Download Visual Studio Code
curl -L "https://update.code.visualstudio.com/latest/win32-x64-user/stable" --output C:\users\WDAGUtilityAccount\Desktop\vscode.exe
REM Install and run Visual Studio Code
C:\users\WDAGUtilityAccount\Desktop\vscode.exe /verysilent /suppressmsgboxes

用户头像

Dare Devor

关注

还未添加个人签名 2018.04.05 加入

还未添加个人简介

评论

发布
暂无评论
Windows Sandbox应用