Windows 沙盒命令行接口

从 Windows 11 版本 24H2 开始,Windows 命令行界面 (CLI) 提供了用于创建、管理和控制沙盒、执行命令以及共享沙盒会话中的文件夹的强大工具。 此功能对于脚本编写、任务自动化和改进开发工作流尤其有用。 在本部分中,你将了解 Windows 沙盒 CLI 的工作原理,以及演示如何使用每个命令来增强开发过程的示例。

常见参数

  • --raw:以 JSON 格式设置所有输出的格式。
  • -?, -h, --help:显示帮助和使用情况信息

“开始”菜单

start 命令创建并启动新的沙盒。 命令返回沙盒 ID,它是沙盒的唯一标识符。 沙盒 ID 可用于在其他命令中引用沙盒。

  • --id <id>:Windows 沙盒环境的 ID。
  • --c, --config <config>:带用于创建Windows 沙盒环境的设置的格式化字符串。

示例

  • 使用默认设置创建Windows 沙盒环境:

    wsb start
    
  • 使用自定义配置创建Windows 沙盒环境:

    wsb start --config "<Configuration><Networking>Disabled</Networking></Configuration>"
    

列表

list 命令显示一个表,其中显示当前用户正在运行Windows 沙盒会话的信息。 该表包含沙盒 ID。 状态可以是“正在运行”或“已停止”。 运行时间是沙盒一直运行的持续时间。

wsb list

Exec

exec 命令在沙盒中执行命令。 该命令采用两个参数:沙盒 ID 和要执行的命令。 该命令可以是内置命令或可执行文件。 exec 命令在沙盒中运行 命令并返回退出代码。 exec 命令还可以采用传递给在沙盒中启动的进程的可选参数。

注意

目前,不支持进程 I/O,这意味着无法检索沙盒中命令运行的输出。

需要活动用户会话才能在当前登录用户的上下文中执行命令。 因此,在运行此命令之前,应建立远程桌面连接。 可以使用 connect 命令完成此操作。

  • --id <id> (必需) :Windows 沙盒环境的 ID。
  • -c, --command <command> (REQUIRED) :在Windows 沙盒内执行的命令。
  • -r, --run-as <ExistingLogin|System> (REQUIRED) :指定要在其中执行命令的用户上下文。 如果选择了“系统”选项,该命令将在系统上下文中运行。 如果选择了 ExistingLogin 选项,则命令在当前活动的用户会话中运行;如果没有活动用户会话,命令将失败。
  • -d, --working-directory <directory>:要执行命令的目录。
wsb exec –-id 12345678-1234-1234-1234-1234567890AB -c app.exe -r System

停止

stop 命令停止正在运行Windows 沙盒会话。 命令采用沙盒 ID 作为参数。

stop 命令终止沙盒进程并释放分配给沙盒的资源。 stop 命令还会关闭显示沙盒桌面的窗口。

wsb stop --id 12345678-1234-1234-1234-1234567890AB

共享

共享命令与沙盒共享主机文件夹。 该命令采用三个参数:沙盒 ID、主机路径和沙盒路径。 主机路径应为文件夹。 沙盒路径可以是现有文件夹或新文件夹。 “附加--allow-write”选项可用于允许或禁止Windows 沙盒环境写入文件夹。

  • --id <id> (必需) :Windows 沙盒环境的 ID。
  • -f, --host-path <host-path> (必需) :从主机共享的文件夹的路径。
  • -s, --sandbox-path <sandbox-path> (REQUIRED) :Windows 沙盒中文件夹的路径。
  • -w, --allow-write:如果指定,则允许Windows 沙盒环境写入共享文件夹。
wsb share --id 12345678-1234-1234-1234-1234567890AB -f C:\host\folder -s C:\sandbox\folder --allow-write

连接

connect 命令在沙盒中启动远程会话。 命令采用沙盒 ID 作为参数。 connect 命令将打开一个新窗口,其中包含远程桌面会话。 connect 命令允许用户使用鼠标和键盘与沙盒交互。

wsb connect --id 12345678-1234-1234-1234-1234567890AB

IP

ip 命令显示沙盒的 IP 地址。 命令采用沙盒 ID 作为参数。

wsb ip --id 12345678-1234-1234-1234-1234567890AB