65.9K
CodeProject 正在变化。 阅读更多。
Home

Intel 物联网网关:Windows 10 入门指南

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2016 年 1 月 19 日

CPOL

34分钟阅读

viewsIcon

34746

本文档描述了部署 Microsoft Windows 10 物联网网关所需的步骤,并解释了如何设置安全功能、软件接入点以及其他管理和开发工具。

获取新的 Intel® 物联网开发者套件,这是一个完整的硬件和软件解决方案,使开发人员能够使用 Intel® Galileo 和 Intel® Edison 主板创建令人兴奋的新解决方案。请访问 Intel® 物联网开发者中心

引言

注意:如需本文档的可下载 PDF 版本,请参阅 https://software.intel.com/en-us/Intel-IoT-Gateway-Windows10-GSG-PDF

本文档描述了部署 Microsoft* Windows* 10 物联网网关所需的步骤,并解释了如何设置安全功能、软件接入点以及其他管理和开发工具。本文档面向希望设置 Windows 10 物联网网关的 OEM、ODM、SI 以及其他用户。由于 Microsoft 已经记录了许多必要的过程,因此本指南向用户介绍主题并提供相关 Microsoft 文档的链接,而不是重写相同的内容。

入门指南还向用户介绍了Intel® 物联网网关的 Windows 配置软件,其中包括Microsoft Windows PowerShell 的 Intel® 物联网网关模块

目标 Windows 10 版本为 Windows 10 IoT Enterprise 和 Windows 10 IoT Core。

您必须提供

  • 网关:这是网关套件中包含的计算机硬件。Windows 10 物联网已安装在网关上。
  • 开发计算机:这是用于准备网关安装介质并通过 Microsoft Windows PowerShell 远程控制网关的 Windows 10 计算机。

  • 包含网关和开发计算机的局域网(例如,通过路由器):这是为了实现从开发计算机到网关的远程 PowerShell。

  • 互联网访问:这是为了访问 Microsoft 信息和工具以便下载到开发计算机。

所需经验水平

本指南假定读者具有以下经验

  • 安装计算机硬件
  • 安装和配置 Windows 软件
  • 执行 Windows 命令以及创建和执行脚本
  • 本地和远程使用 Windows PowerShell

文档术语和约定

  • 术语
    • 网关:包含在网关套件中的硬件。
    • 开发计算机:您提供的 Windows 10 计算机,用于准备网关的安装介质,通过 Microsoft Windows PowerShell 远程控制网关,以及为网关开发应用程序。
    • 部署:准备网关操作系统并将其安装到网关上的过程。
    • 传统制造流程:这是 Windows 10 之前计算机制造商使用的主要部署流程。它仍然适用于 Windows 10,但 Windows 10 提供了新的工具/流程。
    • 参考网关:已安装操作系统并按需配置的网关,并且已安装所需的应用程序。可以将此参考网关的软件(包括操作系统、驱动程序和应用程序)保存到文件中,然后使用该文件在其他网关上复制相同的安装。
    • ffu 文件:完整闪存更新 (.ffu) 文件由 Microsoft 用于保存安装在计算机上的操作系统和其他软件。有关更多详细信息,请参阅 使用完整闪存更新 (FFU) 部署 Windows
    • .wim 文件:Windows 映像 (wim) 文件由 Microsoft 用于保存安装在计算机上的操作系统和其他软件。有关更多详细信息,请参阅 Windows 映像文件格式 (WIM)
    • 自定义资产:这些是要安装到网关上但未包含在默认操作系统版本中的额外驱动程序、软件应用程序和更新。
    • TPM:可信平台模块。
    • UEFI:统一可扩展固件接口,是旧的 BIOS 固件接口和可扩展固件接口 (EFI) 1.10 规范的替代品。
  • 约定
    • 此 Courier 字体用于命令、API 名称、参数、文件名、目录路径和可执行文件。
    • 此粗体字体用于图形用户界面条目、按钮、键盘按键以及 Intel 文档标题和 Intel 软件名称。
      This font in a gray box is used for commands or scripts you must type.
      

Windows 10 物联网 (Enterprise 或 Core) 部署

Microsoft 在 部署 Windows 10 中描述了部署场景和各种部署工具。本文档侧重于使用 Windows 映像和配置设计器 (Windows ICD) 的新 Windows 10 流程。我们在附录中描述了传统制造流程(Windows 10 之前计算机制造商使用的主要部署流程)。

网关准备

在安装 Windows 物联网 (Enterprise 或 Core) 操作系统之前,请确保网关硬件和固件(例如,UEFI BIOS 或可信平台模块 (TPM))满足Intel® 物联网网关规范中列出的要求。该规范可在 Intel Business Link 上通过搜索文档编号 544820 获取。一些额外的注意事项是

  • 要再真实 UEFI 环境中安装 Windows,请查看 安全启动概述 中的“制造要求”部分,以在网关 UEFI 设置中禁用兼容性支持模块 (CSM)。
  • 目前,对于 Windows 物联网核心版,仅支持 32 位 UEFI BIOS。
  • 不同的网关硬件可能有不同的 UEFI BIOS 设置。请咨询网关制造商了解 UEFI BIOS 设置。例如,要在 MinnowBoard Max* 设备上安装 Windows 物联网核心版,请按照 设置 MBM 进行设置以配置正确的 BIOS 设置。

部署工具

使用可启动 Windows 安装介质的安装过程

如果存在以下可启动 Windows 10 安装介质,则只需从该介质启动并按照安装提示进行操作。

  • 从 Microsoft 购买的 Windows 10 DVD。
  • 包含 Windows 10 ISO 文件的可启动可移动介质(从 Microsoft 下载并刻录到可移动介质中)。

对于 Windows 10 物联网核心版,如果可用网关设备的 .ffu 文件,请按照下一节“安装 Windows 10 物联网核心版”中的说明进行操作。

使用 Windows 映像和配置设计器 (ICD) 的映像创建过程

Windows ICD 创建和部署 Windows 映像。请参阅 Windows 映像和配置设计器,了解 Windows ICD 的介绍。

安装 Windows 10 物联网企业版

按照 为 Windows 10 桌面版(家庭版、专业版和企业版)构建和部署映像 使用 Windows ICD 创建新的 Windows 10 物联网企业版映像。

上述方法假定基础 Windows 映像 .wim 文件可用。有几种方法可以获取 .wim 文件

  • 打开 Windows 安装/设置 DVD,并在 sources 文件夹中找到 install.wim
  • 挂载 Windows 安装 ISO 文件,并在 sources 文件夹中找到 install.wim
  • 获取参考网关的 .wim 文件。有关更多详细信息,请参阅 使用传统制造流程进行部署

安装 Windows 10 物联网核心版

  1. 按照 构建和部署 Windows 10 物联网核心版映像 使用 Windows ICD 创建新的 Windows 10 物联网核心版映像。本文档假定您已经有了主板支持包 (BSP)。

    要创建 BSP,需要加入 Microsoft 生态系统工程访问计划 (EEAP)。这不面向公众。有关创建 BSP 的说明,请参阅 **Intel® 物联网网关的 Windows 配置软件** 中包含的 BSP 文件夹中的Windows 10 物联网核心版 BSP 创建文档。您可以在 Intel 下载中心 https://downloadcenter.intel.com/ 通过搜索Intel(R) 物联网网关的 Windows 配置软件来下载。

  2. 完成步骤 1 后,将生成一个完整闪存更新 .ffu 文件。(请参阅附录 A 中的 安装 Windows 10 物联网核心版 以查找获取 .ffu 文件的其他方法。)使用以下两种方法之一将映像部署到网关。
    • 如果操作系统存储设备是可移动介质,请使用 Microsoft 的 WindowsIoTImageHelper 工具,如 设置 MBM 中所述。尽管本文档是针对 MinnowBoard Max 设备的,但关于 WindowsIoTImageHelper 的步骤是通用的。

      如果 WindowsIoTImageHelper 工具不可用,则改用 Windows ICD 工具。启动 Windows 映像和配置设计器应用程序。单击 Windows ICD 应用程序顶部的“部署”按钮,然后按照显示的说明进行操作。

    • 按照附录 A 中的 安装 Windows 10 物联网核心版 使用传统工具。

使用预配包进行自定义

用户可能希望以与默认操作系统不同的方式设置网关。例如,他们可能希望安装一些额外的应用程序,或者他们可能希望更改一些默认的操作系统设置。Microsoft 提供了 Windows 预配自定义框架来帮助实现此类自定义功能。

有关 Windows 预配框架及其支持的自定义类型的介绍,请参阅以下内容

  • 使用 Windows 预配框架进行自定义.
  • 支持的 Windows 自定义.
    注意:如果系统映像格式是 .ffu 文件,则自定义资产(例如,自定义驱动程序和自定义软件应用程序,Microsoft 通用 Windows 平台应用除外)不能包含在预配包中。而是将资产包含在主板支持包 (BSP) 中,然后再生成 .ffu 文件。Microsoft 通用 Windows 平台应用可以通过 Window ICD 配置为自定义/运行时设置,而不是作为资产。

使用 Windows 映像和配置设计器 (Windows ICD) 创建预配包

摘要

  • 对于 Windows 桌面映像
    • 如果需要将自定义资产添加到预配包,则在映像创建时(即部署时)创建预配包并使用它。
    • 如果预配包中仅包含自定义设置,则预配包可以在部署时或运行时应用。
  • 对于 Windows 移动映像(包括 Windows 物联网核心版)
    • 自定义资产不能添加到预配包中。资产需要包含在主板支持包 (BSP) 中,并在映像创建时(即部署时)包含。
    • 如果预配包中仅包含自定义设置,则预配包可以在部署时或运行时应用。

安全 SKU

Windows 安全功能

安全性对于网关很重要,Windows 提供了许多安全功能来管理安全性。本文档提供了设置不同安全级别的简单指南以及一个 PowerShell 模块(Microsoft Windows PowerShell 的 Intel® 物联网网关模块,作为Intel® 物联网网关的 Windows 配置软件的一部分),以帮助设置这些安全功能。

关键 Windows 安全功能

 

标题 描述 目的
UEFI 统一可扩展固件接口。是旧的 BIOS 固件接口和可扩展固件接口 (EFI) 1.10 规范的替代品。 提供更快的启动和恢复时间、使用安全功能的能力以及对 UEFI 固件驱动程序、应用程序和选项 ROM 的支持。
安全启动 由 PC 行业成员开发的安全性标准,旨在确保您的 PC 仅使用 PC 制造商信任的引导加载程序启动。 确保您的 PC 仅使用 PC 制造商信任的引导加载程序启动。
可信平台模块 (TPM) 一个安全加密处理器的国际标准。 提供基于硬件的安全相关功能,例如加密操作。TPM 芯片包含多个物理安全机制,使其防篡改,并且恶意软件无法篡改 TPM 的安全功能。
可信启动 一个过程,通过验证所有 Windows* 启动组件的完整性并确保其可信,来保护启动过程的其余部分(在安全启动之后)。 确保您的 PC 仅使用 Windows 信任的软件启动。
早期启动反恶意软件 (ELAM) 一种驱动程序,在其他启动时驱动程序之前启动,并能够评估这些驱动程序,帮助 Windows 内核决定是否应初始化它们。 检测在启动周期早期启动的恶意软件。
用户帐户控制 一个允许用户以非管理员(称为标准用户)和管理员身份执行常见任务的过程,而无需切换用户、注销或使用“运行方式”。 以可预测且需要最少努力的方式帮助防止系统范围内的意外更改。
Windows 防火墙 一组网络入站和出站规则,用于允许或阻止某些类型的网络流量。 有助于保护计算机免受未经请求的网络流量的侵害。
Windows 更新 一个从 Microsoft 获取最新 bug 修复、安全补丁和功能改进的过程。 帮助您的 Windows 系统保持最新。
Windows 地址空间布局随机化 (ASLR) 一种操作系统功能,可将系统代码加载到内存中不同的、不可预测的位置。 防御缓冲区溢出攻击。
Windows Defender 反恶意软件软件。 有助于保护计算机免受因间谍软件和其他不受欢迎软件引起的弹出窗口、性能下降和安全威胁。
BitLocker 一种数据保护功能,提供驱动器加密并与操作系统集成。 解决了因丢失、被盗或不当退役的计算机而导致的数据盗窃或泄露的威胁。
测量启动和远程证明 测量启动记录启动过程的每个方面的测量值,然后对测量值进行签名并安全地存储在 TPM 中。根据请求,可以将这些测量值发送给一个称为远程证明服务的受信任第三方,该服务可以将测量值与已知良好值进行比较。 允许网络上的受信任服务器验证 Windows 启动过程的完整性并采取相应措施。
代码完整性 一项功能,每次将驱动程序、系统文件或软件可执行文件加载到内存或执行时,都会验证其完整性。 防止不受信任的软件运行。
基于虚拟化的安全 (VBS) 一个 Hyper-V 保护的容器,用于隔离敏感的 Windows 10 Enterprise 进程。 有助于保护系统内存和内核模式应用程序及驱动程序免受可能的篡改。
AppLocker 一种应用程序控制,有助于防止执行不受欢迎和未知的应用程序/脚本。 防止不受信任的软件运行。
USB 过滤器 一个 USB 端口和设备基类过滤器。 允许受信任的 USB 设备连接到系统。
键盘过滤器 一种按键过滤器。 抑制不良的按键或按键组合。

关于 Windows 安全性(概述)

有关 UEFI、安全启动和 TPM 的信息

有关 ELAM 的信息

有关用户帐户控制的信息

有关 Windows 防火墙的信息

有关 Windows 更新的信息

有关 ASLR 的信息

有关 Windows Defender 的信息

有关 BitLocker 的信息

有关测量启动和远程证明的信息

有关代码完整性和基于虚拟化的安全 (VBS) 的信息,它们是设备防护组件

有关 AppLocker 的信息

有关 USB 过滤器和键盘过滤器的信息

安全 SKU 定义

Windows 提供了许多不同的安全功能,有时它们会令人不知所措和困惑。但是,这种多样化的功能允许用户实施最能满足其客户实际需求的安全性功能。Intel 的目标是定义“面向人类的安全”最佳已知配置 (BKC)。不同的 SKU 由 Intel 定义,基于人类可理解的安全功能/级别。

基本 SKU 目标

  • 建议的最低安全性。
  • 以最小的努力满足安全要求。
  • 旨在防御所有已知攻击,但容易受到零日攻击。

中级 SKU 目标

  • 在基本 SKU 的基础上添加。
  • 额外的保护以应对零日攻击。
  • 假定客户拥有网络基础结构(例如,Windows Server 和客户端)来设置需要该基础结构的功能。

高级 SKU 目标

  • 在基本 SKU 的基础上添加。
  • Windows 上可用安全功能提供的最佳保护。

对于每项安全功能,客户都可以调整适合实际使用的详细设置。此类设置可以通过 Microsoft 管理工具 中提到的工具来实现。Intel 在此处的定义提供了客户开始的通用指导。

Intel 的安全 SKU 定义不包括高度依赖特定实际使用(而不是通用设置)的安全功能,例如 Active Directory、Direct Access 或 IPSec VPN。客户应联系 Microsoft 获取有关使用这些功能的文档/说明。

基本安全 SKU 定义表

 

基本 SKU 的安全功能 IoT Core 的基本 SKU IoT Enterprise 的基本 SKU
反恶意软件
  • Windows Defender 和早期启动反恶意软件 (ELAM)(可信启动)- Windows 默认
 
弹性
  • UEFI 安全启动
  • 用户帐户控制 (UAC) - Windows 默认
 
  • 帐户权限
  • Windows 防火墙 - Windows 默认
  • Windows 更新 - Windows 默认
  • ASLR
数据保护
  • BitLocker (仅限 TPM)
  • TPM

中级安全 SKU 定义表

 

中级 SKU 的安全功能(在基本 SKU 之上) IoT Core 的中级 SKU IoT Enterprise 的中级 SKU
反恶意软件
  • 代码完整性(基于 PcaCertificate,哈希回退到 OS 驱动器,哈希到 Program Files\WindowsPowerShell 和 Windows\system32\WindowsPowerShell 文件夹,仅审核模式用于生成日志)
IoT Core 没有可配置用户模式代码完整性的设置工具。
  • AppLocker(允许所有签名 exe/msi/脚本/打包应用和 Windows 默认 AppLocker 策略)
 
弹性
  • 测量启动和远程证明
√(不包括 ELAM 的测量)
数据保护    
  • BitLocker (TPM + 网络解锁)
√ (仅限 TPM)

高级安全 SKU 定义表

 

高级 SKU 的安全功能(在中级 SKU 之上) IoT Core 的高级 SKU IoT Enterprise 的高级 SKU
反恶意软件
  • 代码完整性(强制执行中级 SKU 的策略)
IoT Core 没有可配置用户模式代码完整性的设置工具。
  • AppLocker(仅允许已安装的 exe/msi/脚本和具有与现有打包应用相同发布者的打包应用,也允许签名脚本)
 
  • USB 可移动介质锁定
  • USB 过滤器
 
  • 键盘过滤器
 
弹性
  • 基于虚拟化的安全
 
注意:对于基于虚拟化的安全,我们不启用“基于虚拟机监控程序的代码完整性 (HVCI)”。HVCI 需要驱动程序兼容性支持。

Intel 提供了Microsoft Windows PowerShell 的 Intel® 物联网网关模块,这是一个自定义的 Windows PowerShell 模块,用于帮助设置大多数这些功能。有关更多详细信息,请参阅本节后面的 Microsoft Windows PowerShell 的 Intel 物联网网关模块

Microsoft Windows PowerShell 的 Intel 物联网网关模块

模块介绍

Intel 提供了一个自定义的 PowerShell 模块 IntelIoTGatewaySetup,正式名称为Microsoft Windows PowerShell 的 Intel® 物联网网关模块。它用于为 Intel® 物联网网关设置 Windows 功能,因此它设置了定义的安全 SKU。该模块是Intel® 物联网网关的 Windows 配置软件的一部分。您可以在 Intel 下载中心 通过搜索Intel(R) 物联网网关的 Windows 配置软件来下载。IntelIoTGatewaySetup 仅支持英文版的 Windows 10 IoT Enterprise 和 Windows 10 IoT Core。

具体来说,IntelIoTGatewaySetup 设置了本节前面 安全 SKU 定义 中定义的安全功能

  • Windows 更新、Windows Defender、Windows 防火墙、Windows 用户帐户控制、USB 可移动介质锁定、基于虚拟化的安全、App Locker、代码完整性。
  • Bit Locker(仅限 TPM 解锁,适用于 Windows 10 IoT Enterprise):尽管 SKU 定义为中级和高级 SKU 指定了 TPM + 网络解锁,但 PowerShell 模块仅设置了带 TPM 解锁的 BitLocker,因为网络解锁需要额外的网络基础结构支持。

尽管IntelIoTGatewaySetup 设置了本节前面 安全 SKU 定义 中定义的许多安全功能,但它没有设置以下功能

  • UEFI、安全启动和 TPM:这些是 Intel 支持的网关的硬件和固件要求的一部分。网关应已启用这些功能。
  • 帐户权限:可以根据具体用途创建一个具有管理员角色的帐户,或创建一个普通的标准帐户。
  • ASLR:这在 Windows 操作系统中已得到支持并处于活动状态。无需进行任何设置。
  • 测量启动:这是由 UEFI 固件、TPM 和 Windows 实现的。无需进行任何设置。
  • 远程证明:这需要设置支持的网络结构和实施额外的软件。有关参考文档,请参阅本节前面的 Windows 安全功能
  • BitLocker + 网络解锁:网络解锁需要设置支持的网络结构和 UEFI 中的 DHCP 驱动程序功能,因此 PowerShell 模块仅设置带 TPM 解锁的 BitLocker。有关参考文档,请参阅本节前面的 Windows 安全功能
  • USB 过滤器:根据具体用途使用组策略设置此项,以按设备或类 ID 控制 USB 设备。有关参考文档,请参阅本节前面的 Windows 安全功能
  • 键盘过滤器:使用 Windows ICD 工具配置此过滤器。有关参考文档,请参阅本节前面的 Windows 安全功能

IntelIoTGatewaySetup 文件夹包含以下主要组件

  • Readme.rtf:这是一个简单的自述文件,供用户入门。
  • ModuleInstallation.ps1:这是一个脚本文件,其中包含一个命令,用于帮助安装 IntelIoTGatewaySetup 模块。
  • IntelIoTGatewaySetup 文件夹:这是 IntelIoTGatewaySetup 模块的文件夹。

模块安装

如果用户拥有一个带显示器和键盘的网关,则可以直接在网关上运行 PowerShell 命令来安装我们的模块。安装模块后,直接在网关上运行我们模块提供的 PowerShell 命令。我们称之为本地安装和本地执行。

网关可能位于远程位置,或者网关可能没有显示器。在这种情况下,请使用另一台计算机(开发计算机)来远程控制和设置网关。在本文档的其余部分,我们假定用户处于第二种情况。我们称之为远程安装和远程执行。

要从开发计算机将此 PowerShell 模块安装到网关(这涉及暂时将开发计算机的网络驱动器映射到网关),这些系统需要位于同一子网中。

要安装模块,请执行以下步骤。

在网关上启用远程 PowerShell 的步骤

  • 对于 Windows 物联网核心版,目前无需执行任何操作。
  • 对于 Windows 物联网企业版,请根据 启用和使用 Windows PowerShell 中的远程命令Enable-PSRemoting 中的信息,启用并使用 Windows PowerShell 中的远程命令。

    例如,运行以下 PowerShell 命令以启用远程 PowerShell

    #Get NIC index of the active NIC
    Get-NetAdapter
    #$index is the index found.
    #Set the target active connection to private.
    #Line break is space+backtick.
    
    Set-NetConnectionProfile -InterfaceIndex $index `
         -NetworkCategory Private
    #Enable remoting
    Enable-PSRemoting -Force

在开发计算机上,按照以下 PowerShell 环境中的步骤进行操作。

  1. 确保以下两个帐户在其各自的计算机上拥有管理员角色
    1. 开发计算机上用户当前登录的帐户,以及
    2. 稍后将用于网关的网关帐户
  2. 以管理员身份运行 PowerShell 环境。
  3. 要运行 ModuleInstallation.ps1 脚本,PowerShell 执行策略需要设置为 AllSignedRemoteSigned。有关更多详细信息,请查看 Get-ExecutionPolicySet-ExecutionPolicy Cmdlet。

    例如,运行以下命令将执行策略设置为 RemoteSigned

    Set-ExecutionPolicy RemoteSigned
    
  4. 点源(dot-source) ModuleInstallation.ps1 脚本。

    要点源脚本,请在脚本路径前键入一个点 (.) 和一个空格。例如,

    . .\ModuleInstallation.ps1
    

    有关更多详细信息,请参阅 about_Scripts

  5. 然后按照以下步骤检查 Install-IntelIoTGatewaySetup 命令的帮助和示例
    Get-Help Install-IntelIoTGatewaySetup –Full
    
  6. 然后运行 Install-IntelIoTGatewaySetup 命令(基于帮助和示例信息),将模块从开发计算机安装到网关。例如,运行以下命令
    #$path is the path to module folder you downloaded, 
    #       e.g., ‘C:\IntelIoTGatewaySetup’
    #$remoteip is the ip address of the remote gateway, 
    #       e.g., ‘192.168.2.5’
    #$remoteaccount is the account of the remote gateway, 
    #       e.g., ‘Tester’ or ‘Domain\Tester’
    # Linebreak is space+backtick.
    
    Install-IntelIoTGatewaySetup –ModuleLocalPath $path `
         -RemoteGateway $remoteip `
         -RemoteAccount $remoteaccount -Verbose

    (对于本地安装,用户也可以直接在网关上运行 Install-IntelIoTGatewaySetup。)

    (对于卸载,用户可以使用 Uninstall-IntelToTGatewaySetup 命令。查看其帮助信息以获取详细信息和示例。)

  7. 安装后,使用远程 PowerShell 在网关上运行我们模块中的命令。有关如何使用远程 PowerShell 的详细信息,请参阅 Remoting Week: Remoting Sessions。例如,按顺序运行以下 PowerShell 命令
    1. 启动 WinRM 服务(如果尚未启动)。
      if ((Get-Service WinRM).Status.ToString() -ne 'Running') {
          # Start WinRM service
          Write-Verbose "Start WinRM service."
          net start WinRM
      }
    2. 将远程网关添加到 TrustedHosts 列表。
      #This will remove the original TrustedHosts and use $remoteip. 
      #Can also concatenate a value to TrustedHosts list. 
      #       Try Get-Help Set-Item.
      #$remoteip is the ip address of the remote gateway.
      # Linebreak is space+backtick.
      Set-Item WSMan:\localhost\Client\TrustedHosts `
        -Value $remoteip -Force
    3. 为远程网关创建远程 PowerShell 会话。
      #$remoteip is the ip address of the remote gateway
      #$remoteaccount is the account with Admin privilege 
      #       of the remote gateway.
      #Linebreak is space+backtick.
      $s = New-PSSession -ComputerName $remoteip `
           -Credential "localhost\$remoteaccount"
    4. 在远程网关上运行命令。
      # Run remote script for testing
      Invoke-Command -Session $s -ScriptBlock {
          #Run the PowerShell commands you want in this block.
          #These commands will be run at the remote gateway.
      
          # check our module information
          Get-Command -Module IntelIoTGatewaySetup
          Get-Module IntelIoTGatewaySetup
      }
    5. 完成需要运行的命令后,删除远程 PowerShell 会话。
      Remove-PSSession -Session $s

模块用法

与模块安装类似,我们假定使用开发计算机远程控制网关。要使用该模块,请完成以下步骤。

在网关上,按照 模块安装 中使用的相同过程启用远程 PowerShell(如果尚未完成)。

在开发计算机上,执行以下步骤

  1. 按照 模块安装 的步骤 7 执行类似步骤。对于模块使用的其余说明,命令应放在 Invoke-CommandScriptBlock 中,以便在远程网关上运行。
  2. 安装模块后,使用 Get-Help-Full 参数可以获得有关模块中每个命令的更多信息。使用以下命令获取模块中所有可用命令
    Get-Command -Module IntelIoTGatewaySetup
  3. 要设置 Intel 安全 SKU,主要命令是 Enable-IoTWinSecuritiesDisable-IoTWinSecurities。它们会调用此模块中的其他命令。查看它们的帮助信息以获取更多详细信息(Get-Help Enable-IoTWinSecurities -Full)。例如,
    • 要使用此示例 BitLocker 恢复密码启用“基本”SKU,请运行以下命令
      #$RecoveryPW is the recovery password for BitLocker
      #        that you want to use.
      #For example, $RecoveryPW = 
      #       '099825-222222-607607-626285-132319-115621-083204-229482'
      #Linebreak is space+backtick.
      Enable-IoTWinSecurities -SKU "Basic" `
           -BitLockerRecoveryPW $RecoveryPW `
           -AddPowerShellRemotingFirewallRule -ErrorLog -Verbose

      读取输出,查看每个要启用的功能是否有任何警告或错误。

      例如,警告可能会指示用户重新启动系统以完成安装所需的 Windows 功能,然后再次运行此函数。

    • 要禁用/删除安全 SKU 设置,请运行以下命令
      Disable-IoTWinSecurities -ErrorLog -Verbose
      

    也可以调用单独的命令(由 Enable-IoTWinSecuritiesDisable-IoTWinSecurities 使用)来设置特定的安全功能。

    如果 TPM 未“准备好使用”,则需要先进行设置;否则,无法启用 BitLocker。请按照 TPM 管理 进行设置。

    如果为“高级”SKU 设置了 AppLocker,则用户将无法使用 PowerShell 添加新的 Windows 功能,因为根据设计,PowerShell 创建和使用的用户帐户的临时文件夹中的 DISMHOST.EXE 将被阻止。因此,用户将无法使用我们的命令来启用 VBS,因为此命令将尝试安装所需的 Windows 功能。在 Enable-IoTWinSecurities 命令中,我们首先进行 VBS 设置。如果需要安装 Windows 功能,请执行系统重启以完成功能安装,然后再次运行该命令。

    对于用户模式代码完整性,我们需要设置注册表项以允许我们的模块位置进入代码完整性策略的完全语言模式。我们的自定义模块设计为安装在 %Program Files%\WindowsPowerShell\Module 中。如果不是这种情况,我们需要手动设置以下注册表项

    • 将自定义模块所在的路径(例如,%Program Files%\WindowsPowerShell\Module)放在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\TRSData 下的名为“TestPath”的 REG_MULTI_SZ 条目中。

软件接入点

无线托管网络

从 Windows* 7 开始,Microsoft 提供了一种无线托管网络功能,用于提供软件 AP 的能力。有关更多详细信息,请参阅以下文档

上述文档中的一个重要注意事项是系统睡眠(待机)或休眠的限制。如果在计算机进入睡眠(待机)、休眠状态,或在计算机重启之前,无线托管网络正在运行,则无线托管网络将停止。

Intel 提供了Microsoft Windows PowerShell 的 Intel® 物联网网关模块,以帮助设置此功能。有关更多详细信息,请参阅下面的 Microsoft Windows PowerShell 的 Intel 物联网网关模块

当前已知问题

对于 Windows 10 物联网核心版,尽管可以启用托管网络,但不支持 Internet 连接共享。因此,IoT Core 上的软件 AP 不为其他连接的设备提供 Internet 访问。此外,Microsoft发布的默认 IoT Core 启动应用会干扰托管网络功能。为了获得稳定的软件 AP,请使用不同的 IoT Core 启动应用或卸载默认启动应用。

此外,对于 Windows 10 物联网核心版,以下限制会导致我们的 PowerShell 模块将未加密的 SSID、SSID 密钥和其他软件 AP 参数存储在配置文件中

Microsoft Windows PowerShell 的 Intel 物联网网关模块

有关通用模块介绍、安装和使用的信息,请参阅上一章的 Microsoft Windows PowerShell 的 Intel 物联网网关模块。该部分介绍了如何从开发计算机在网关上运行以下命令。

对于软件 AP 设置,主要命令是 Install-IoTGatewayAPUninstall-IoTGatewayAPUpdate-IoTGatewayAP。它们会调用此模块中的其他命令。查看它们的帮助信息以获取更多详细信息(Get-Help Install-IoTGatewayAP -Full)。例如,

要安装软件 AP,请运行以下命令

#$ssid is the ssid you want to use for AP.
#$pw_ssid is the password of the AP.
Install-IoTGatewayAP -SSID $ssid -KeySSID $pw_ssid -ErrorLog

例如,要卸载软件 AP(使用安装期间保存的信息),请运行以下命令

Uninstall-IoTGatewayAP -ErrorLog

也可以调用(由上述三个主要命令使用的)单独的命令来设置单个功能。例如,Enable-IoTGatewayAP 允许用户启用软件 AP 和 Internet 连接共享。但是,如果尚未运行 Install-IoTGatewayAP,则在计算机重启后它会自动禁用。

Microsoft 管理工具

可管理性对于物联网网关很重要。Microsoft 使用多种管理工具,包括 PowerShell、Microsoft Intune、System Center Configuration Manager 和组策略。请阅读以下文档以了解 Windows 10 设备管理的概述

Windows PowerShell

远程 Windows PowerShell 是管理设备的常用工具。有许多 PowerShell 模块提供各种功能来控制 Windows 设置。(其中,Intel 提供了Microsoft Windows PowerShell 的 Intel® 物联网网关模块来帮助实现物联网网关的设置。)有许多书籍和教程可用。以下资源提供了 PowerShell 的良好入门介绍

要使用 PowerShell,请遵循以下通用概述步骤

  1. 在网关上启用远程 PowerShell。目前,对于 Windows 物联网核心版,无需进行任何设置。
  2. 在开发计算机上启用远程 PowerShell。
  3. 在开发计算机上执行以下操作
    1. 为网关创建一个新会话。如果要使用的 PowerShell 命令需要管理员权限,则网关的帐户需要具有管理员特权。
    2. 为此会话运行 PowerShell 脚本块。
    3. 删除此会话。

Microsoft Intune

Microsoft Intune 提供来自 Internet 云的移动设备管理。有关更多详细信息,请阅读以下文档

Microsoft Intune 使用配置服务提供程序 (CSP) 来管理 Windows 10 移动设备。有关更多详细信息,请阅读以下文档。

要通过 OMA-URI 使用自定义策略,Windows 10 设备需要注册为移动设备。有关更多详细信息,请阅读以下文档

将 Microsoft Intune 与 Azure Active Directory 结合使用可以简化设备注册。有关更多详细信息,请阅读以下文档

System Center Configuration Manager

System Center Configuration Manager 在 Active Directory 中的企业网络内提供移动设备管理。此外,通过与 Microsoft Intune 集成,“System Center Configuration Manager + Intune”可用于从 Internet 云管理设备。有关更多详细信息,请阅读以下文档

组策略

组策略是企业在 Active Directory 中管理企业网络内多台计算机的常用工具。有关更多详细信息,请参阅以下内容

管理 Windows 10 遥测/隐私设置

Windows 10 依赖遥测信息(报告给云服务)来启用许多服务。要更改遥测设置,请阅读 在您的组织中配置遥测和其他设置

应用程序开发

软件应用程序提供默认操作系统不提供的独特功能。本文档将用户引导至 Windows 应用程序开发的一些起点。

有关通用 Windows 应用程序开发,请阅读以下文档以获取更多详细信息

有关 Windows 10 物联网核心版,请阅读以下文档以获取更多详细信息

注意:在 IoT 设备上开发应用程序时,请勿将设备设置为“中级”或“高级”安全 SKU。否则,正在测试/开发的应用程序可能会被阻止。

使用传统制造流程进行部署

Microsoft 在 部署 Windows 8:系统构建者的视频教程 上发布了一系列演示视频。尽管这些视频是针对 Windows 8 的,但信息仍然适用于 Windows 10。观看这些视频以获得对过程的总体理解。本文档简要描述了每个步骤,并引导读者参考 Microsoft 文档以获取更详细的说明。

安装 Windows 10 物联网企业版

应按顺序执行以下步骤。

  1. 将 Windows 预安装环境 (WinPE) 安装到可启动 USB 驱动器

    WinPE 是一个具有最小资源的最小 Windows 操作系统,用于复制磁盘映像、准备计算机安装 Windows 以及启动 Windows 安装。请按照以下 Microsoft 文档获取说明

    如果需要自定义 WinPE 环境以进行更高级的设置,请按照 WinPE:挂载和自定义 进行操作。

  2. 从参考网关捕获 Windows 映像

    此步骤仅在需要从参考网关捕获自定义 Windows 映像 (.wim) 文件时才需要。如果已有 .wim 文件,请将其保存到 USB 存储驱动器或网络驱动器,以便 WinPE 环境稍后可以访问它。

    要捕获 Windows 映像,请按照以下 Microsoft 文档获取说明

  3. 将 Windows 映像部署到网关

    此步骤创建磁盘分区并将 Windows 映像安装到网关并设置系统分区。请按照以下 Microsoft 文档获取说明

    有关 Windows 恢复分区的更高级设置,请参阅以下文档

安装 Windows 10 物联网核心版

首先,为网关获取 Windows 10 物联网核心版的闪存映像 .ffu 文件。有几种选项可以获取 .ffu 文件

  • 可以下载 Microsoft 发布的文件(例如,对于 MinnowBoard Max,请参阅 设置 MBM)。
  • 使用 imggen 工具。步骤如下
    1. 假定您已安装了工具,如 部署工具 中所述。
    2. 打开已提升(管理员)权限的部署和映像工具命令提示符。
    3. 按顺序设置以下环境变量
      SET PATH=%KITSROOT%tools\bin\i386;%PATH%
      SET AKROOT=%KITSROOT%
      
    4. 使用以下命令构建映像
      imggen.cmd IoTCore.ffu "%KITSROOT%OEMInputSamples\MBM\ProductionOEMInput.xml" "%KITSROOT%MSPackages" x86
      

      第一个参数是输出的 .ffu 文件名。第二个参数是带完整路径的 OEM 输入文件。这应该是您的 BSP 的一部分。请参阅 使用 Windows 映像和配置设计器 (ICD) 的映像创建过程 了解有关 BSP 的更多信息。第三个参数是包含 Microsoft 软件包的根目录的路径。默认情况下,此目录是 %ProgramFiles(x86)%\Windows Kits\10\MSPackages。如果 BSP 不可用,此命令将失败。

  • 使用 Windows 映像和配置设计器 (Windows ICD) 生成 .ffu 文件。有关 Windows ICD 的更多详细信息,请在“安装 Windows 10 物联网核心版”下的 使用 Windows 映像和配置设计器 (ICD) 的映像创建过程 中进行描述。

然后,将 .ffu 映像应用到存储设备。

如果网关使用可移动介质(SD 卡或 USB 驱动器)作为存储设备,则执行以下步骤

  1. 请参阅 使用 DISM 为 Windows 物联网核心版设备闪存 micro SD 卡 获取说明。

如果网关具有内部存储设备(例如,硬盘驱动器),则执行以下步骤

  1. 首先,准备一个可启动 USB 驱动器上的自定义 WinPE,遵循以下步骤
    1. 目前,Windows 10 物联网核心版需要 32 位 WinPE。请按照 WinPE:挂载和自定义 来创建 WinPE 文件并挂载 WinPE 启动映像。仅完成“创建 WinPE 文件”和“挂载 WinPE 启动映像”部分。
    2. 然后将 .ffu 文件复制到挂载文件夹。例如,如果上面过程中的 WinPE 文件夹是 C:\WinPE_x86,则将 .ffu 文件复制到 C:\WinPE_x86\mount 文件夹。
    3. 接下来插入 USB 驱动器(至少 4 GB),并按照 WinPE:创建 USB 可启动驱动器 中的示例,将 USB 驱动器格式化为 NTFS 格式。仅检查“疑难解答”部分,并且只完成“diskpart”部分,而不是“MakeWinPEMedia”部分。我们将在下一步中运行“MakeWinPEMedia”命令,在我们卸载并提交更改之后。
    4. 然后按照 WinPE:挂载和自定义 中的“卸载……”部分,卸载 WinPE 并创建 USB 驱动器上的介质。在卸载之后,运行 dism /cleanup-wim 以确保映像已卸载。请记住在这些命令中使用正确的 32 位 WinPE 文件夹名称和正确的 USB 驱动器字母。
  2. 然后将闪存映像部署到网关,遵循以下步骤
    1. 将可启动 USB 驱动器插入网关,并从 USB 驱动器启动。
    2. 这将启动到 WinPE 环境。
    3. 然后使用类似于 使用 DISM 为 Windows 物联网核心版设备闪存 micro SD 卡 中的命令,将映像应用到网关的内部存储。使用的磁盘号应为网关内部存储的编号。请记住为 .ffu 文件指定正确的路径。.ffu 文件应已在上一步复制到此可启动 WinPE USB 驱动器中,因此请使用该路径。
    4. 然后通过运行 wpeutil shutdown 来关闭设备。
    5. 移除可启动 WinPE USB 驱动器,并将内部存储设置为 #1 启动优先级。

参考解决方案简报

除了本文档和 Microsoft 文档外,Intel 还提供了其他文档来帮助您使用网关。这些文档可在 Intel 物联网网关开发者中心 部分找到,方法是搜索 Windows 操作系统的“解决方案简报”或“配方”。精选文档包括(但不限于)

  • 物联网配方 - 将 Windows* 10 物联网设备连接到 MeshCentral
  • 物联网配方 - 将 Cloud9 Desktop 用作 Windows* 10 Enterprise 网关的设备上开发工具
  • 解决方案简报 - 使用 .NET 和 Azure 事件中心进行物联网设备遥测
  • 解决方案简报 - 使用 Node.js 和 Node-RED 为 Windows* 10 Enterprise 上的物联网应用程序
  • 解决方案简报 - 使用 Node.js 和 Azure 事件中心进行物联网设备遥测
  • 解决方案简报 – 将 Windows* 10 Enterprise 物联网网关连接到 Wind River* Helix Device Cloud
© . All rights reserved.