Windows 设备门户概述

Windows 设备门户(WDP)是 Windows 设备附带的 Web 服务器,可用于通过网络或 USB 连接配置和管理设备的设置(使用 Web 浏览器的设备也支持本地连接)。

WDP 还提供高级诊断工具,用于排查和查看 Windows 设备的实时性能。

WDP 功能通过 REST API 集合以编程方式公开。

本文提供了 Windows 设备门户的常规说明,并包含一系列文章链接,这些文章介绍了每个 Windows 设备系列的更具体的信息。

注意

设备系列标识可在一类设备中期望的 API、系统特性和行为。

安装

每个设备系列都提供 WDP 的版本,但功能和设置因设备的要求而异。

这是适用于所有设备的基本步骤。

  1. 启用开发人员模式(设置 -> 系统 - 面向开发人员>)。

    “设置” -> 系统 ->“开发人员”窗口的屏幕截图,其中显示了“开发人员模式已启用”。

  2. 在设备上启用设备门户(设置 -> 系统 -> 面向开发人员)。

    “设置”(> 系统)的屏幕截图->“面向开发人员”窗口,显示启用后可用的设备门户设置。

  3. 通过本地网络或 USB 连接设备和电脑。

  4. 在浏览器中导航到“设备门户”页。 下表显示了每个设备系列使用的端口和协议。

下表包含 WDP 设备特定信息。

注意

Windows 混合现实在普通桌面上运行,因此它与桌面门户相同。

设备系列 默认启用? HTTP HTTPS USB 说明
桌面版和 IoT 企业版 在开发模式下启用 50080* 50043* N/A 适用于桌面或 IoT Enterprise 设备的设备门户
Xbox 在开发模式下启用 已禁用 11443 N/A 适用于 Xbox 的设备门户
HoloLens 是,在开发模式下 80 (默认值) 443 (默认值) http://127.0.0.1:10080 适用于 HoloLens 的设备门户
IoT 核心 是,在开发模式下 8080 通过 regkey 启用 N/A 适用于 IoT 核心板的设备门户

* 并非始终是这种情况,桌面上的 Device Portal 声明短暂范围 (>50000) 内的端口以防止与设备上的现有端口声明冲突。 若要了解详细信息,请参阅适用于桌面的 Windows 设备门户 基于注册表的配置 部分。

功能

工具栏和导航

页面顶部的工具栏提供对常用功能的访问权限。

  • 电源:访问电源选项。
    • 关机:关闭设备。
    • 重启:关闭再打开设备的电源。
  • 帮助:打开帮助页面。

使用页面左侧导航窗格中的链接导航到设备的可用管理和监视工具。

此处介绍了跨设备系列通用的工具。 其他选项可能因设备而异。 有关详细信息,请参阅设备类型的特定页面。

应用管理器

应用管理器为主机设备上的应用包和捆绑包提供安装/卸载和管理功能。

设备门户应用程序管理页面

  • 部署应用:从本地、网络或 Web 服务器部署打包的应用程序,并从网络共享中注册未打包的文件。
  • 已安装的应用:使用下拉菜单删除或启动设备上安装的应用。
  • 运行应用:获取有关当前正在运行并根据需要关闭的应用的信息。

安装(旁加载)应用

可以在开发过程中使用 Windows 设备门户旁加载应用:

  1. 创建应用包后,可以远程将其安装到设备上。 在 Visual Studio 中生成它后,将生成输出文件夹。

    应用安装

  2. 在 Windows 设备门户中,导航到 应用管理器 页。

  3. 部署应用 部分中,选择 本地存储

  4. 在“选择应用程序包”下,选择“选择文件”,并浏览到要旁加载的应用包。

  5. 选择用于对应用包进行签名的证书文件(.cer),选择 选择文件 并浏览到与该应用包关联的证书。

  6. 如果您想在安装应用程序时一并安装可选包或框架包,请选中相应的框,然后选择 下一步 以继续选择它们。

  7. 选择“安装”启动安装

  8. 如果设备以 S 模式运行 Windows 10,并且首次在设备上安装了给定证书,请重启设备。

安装证书

或者,可以通过 Windows 设备门户安装证书,并通过其他方式安装应用:

  1. 在 Windows 设备门户中,导航到 应用管理器 页。

  2. 在“部署应用”部分中,选择“安装证书

  3. 在“选择用于对应用包进行签名的证书文件(.cer)”中,选择“选择文件”,并浏览到与要旁加载的应用包关联的证书。

  4. 选择安装 以开始安装。

  5. 如果设备以 S 模式运行 Windows 10,并且首次在设备上安装了给定证书,请重启设备。

卸载应用

  1. 确保应用未在运行。
  2. 如果应用正在运行,请转到“正在运行的应用”并关闭它。 如果在应用运行时尝试卸载,则在尝试重新安装应用时会导致问题。
  3. 从下拉列表中选择应用程序,然后单击 删除

正在运行的进程

此页显示有关当前在主机设备上运行的进程的详细信息。 这包括应用和系统进程。 在某些平台上(桌面、IoT 和 HoloLens),可以终止进程。

设备门户“正在运行的进程”页

文件资源管理器

通过此页面可以查看和操作任何旁加载的应用存储的文件。 请参阅 使用应用文件资源管理器 博客文章,详细了解文件资源管理器及其用法。

设备门户文件资源管理器页面

性能

“性能”页显示系统诊断信息的实时图,例如电源使用情况、帧速率和 CPU 负载。

以下是可用的指标:

  • CPU:可用 CPU 总利用率的百分比
  • 内存:总计、已用、可用、已提交、已分页和未分页
  • I/O:读取和写入数据量
  • 网络:接收和发送的数据
  • GPU:总可用 GPU 引擎利用率的百分比

设备门户性能页

Windows 事件跟踪 (ETW) 日志记录

ETW 日志记录页管理设备上的 Windows 实时事件跟踪(ETW)信息。

设备门户“ETW 日志记录”页

勾选 隐藏提供程序 以仅显示事件列表。

  • 已注册的提供程序:选择事件提供程序和跟踪级别。 跟踪级别是以下值之一:

    1. 异常退出或终止
    2. 严重错误
    3. 警告
    4. 非错误警告
    5. 详细跟踪

    单击或敲击“启用”以开始跟踪。 提供程序将添加到“已启用的提供程序”下拉列表。

  • 自定义提供程序:选择自定义 ETW 提供程序和跟踪级别。 根据其 GUDI 标识提供程序。 不要在 GUID 中包含方括号。

  • 启用的提供程序:列出已启用的提供程序。 从下拉列表中选择一个提供程序,然后单击或敲击“禁用”可停止跟踪。 单击或敲击“全部停止”会暂停所有跟踪。

  • 提供程序历史记录:此处显示了当前会话中已启用的 ETW 提供程序。 单击或敲击“启用”可激活已禁用的提供程序。 单击或点击 清除 以清除历史记录。

  • 筛选器/事件事件 部分以表格式列出所选提供程序中的 ETW 事件。 表将实时更新。 使用 筛选器 菜单来设置自定义筛选器,以便显示特定事件。 单击“清除”按钮,从表中删除所有 ETW 事件。 这不会禁用任何提供程序。 可以单击 “保存到文件”,将当前收集的 ETW 事件导出到本地 CSV 文件。

有关使用 ETW 日志记录的更多详细信息,请参阅使用设备门户查看调试日志博客文章。

性能跟踪

Windows 性能工具包中有性能跟踪页面,通过它可查看来自主机设备的 Windows 性能记录器 (WPR) 跟踪。

设备门户性能跟踪页

  • 可用配置文件:从下拉列表中选择 WPR 配置文件,然后单击或点击“开始”以开始跟踪。
  • 自定义配置文件:单击或点击“浏览”以从电脑中选择 WPR 配置文件。 单击或敲击“上传并启动”以开始跟踪。

若要停止跟踪,请单击 停止。 请留在此页面,直到跟踪文件(.ETL)完成下载。

捕获的 .ETL 文件可以在 Windows 性能分析器中打开进行分析。

设备管理器

“设备管理器”页面列出附加到您设备上的所有外围设备。 可以单击设置图标以查看每个图标的属性。

设备门户设备管理器页

联网

“网络”页管理设备上的网络连接。 除非通过 USB 连接到设备门户,否则更改这些设置可能会断开与设备门户的连接。

  • 可用网络:显示设备可用的 WiFi 网络。 单击或点击某个网络将允许你连接到该网络,并提供密钥(如果需要)。 设备门户尚不支持企业身份验证。 您也可以使用“配置文件”下拉列表尝试连接到设备已知的任何 WiFi 配置文件。
  • IP 配置:显示有关每个主机设备网络端口的地址信息。

设备门户网络页面

服务功能和说明

DNS-SD

设备门户使用 DNS-SD 在本地网络上宣传其存在。 所有 Device Portal 实例都将在“WDP._wdp._tcp.local”下公布,无论其设备类型如何。 服务实例的 TXT 记录提供以下内容:

密钥 类型 描述
S int Device Portal 的安全端口。 如果为 0(零),则设备门户未侦听 HTTPS 连接。
D 字符串 设备类型。 这将采用“Windows.*”格式,例如 Windows.Xbox 或 Windows.Desktop
A 字符串 设备体系结构。 这将为 ARM、x86 或 AMD64。
T 字符串的 null 字符分隔列表 用户应用的设备标记。 请参阅标记 REST API,了解如何使用此 API。 列表以双 null 结尾。

推荐 HTTPS 端口上的连接,因为并非所有设备都侦听 DNS-SD 记录所公布的 HTTP 端口。

CSRF 保护和脚本

为了防止 CSRF 攻击,所有非 GET 请求都需要唯一令牌。 此令牌 X-CSRF-Token 请求标头派生自会话 Cookie CSRF-Token。 在 Device Portal Web UI 中,CSRF-Token Cookie 将复制到每个请求的 X-CSRF-Token 标头中。

重要

此保护措施限制了通过独立客户端(如命令行工具)访问 REST API 的使用。 可通过 3 种方式解决此问题:

  • 使用“auto-”用户名。 在其用户名前面追加“自动”的客户端将绕过 CSRF 保护。 请务必不要使用此用户名通过浏览器登录到设备门户,因为这会将服务打开到 CSRF 攻击。 示例:如果设备门户的用户名为“admin”,则 curl -u auto-admin:password <args> 用来绕过 CSRF 保护。
  • 在客户端中实现 Cookie 到标头的方案。 这需要 GET 请求来建立会话 Cookie,并包含所有后续请求的标头和 Cookie。
  • 禁用身份验证并使用 HTTP。 CSRF 保护仅适用于 HTTPS 终结点,因此 HTTP 终结点上的连接不需要执行上述任一操作。

跨站点 WebSocket 劫持 (CSWSH) 保护

为了防止 CSWSH 攻击,所有打开与 Device Portal 的 WebSocket 连接的客户端还必须提供与 Host 标头相匹配的 Origin 标头。 这向设备门户证明,请求来自设备门户 UI 或有效的客户端应用程序。 如果没有 Origin 标头,请求将被拒绝。

另请参阅

设备门户核心 API 参考