从 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