使用 Windows 容器实现 IoT Edge 的 PowerShell 脚本

适用于:是图标 IoT Edge 1.1

重要

IoT Edge 1.1 终止支持日期为 2022 年 12 月 13 日。 请查看 Microsoft 产品生命周期,了解此产品、服务、技术或 API 的受支持情况。 有关更新到最新版本的 IoT Edge 的详细信息,请参阅 更新 IoT Edge

了解在 Windows 设备上安装、更新或卸载 IoT Edge 的 PowerShell 脚本。

本文中所述的命令来自 IoTEdgeSecurityDaemon.ps1 文件,该文件随每个 IoT Edge 版本一起发布。 aka.ms/iotedge-win 始终提供最新版本的脚本。

可以使用 Invoke-WebRequest cmdlet 运行任何命令来访问最新的脚本版本。 例如:

. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
Deploy-IoTEdge

还可以从特定版本下载此脚本或脚本版本,以运行命令。 例如:

. <path>\IoTEdgeSecurityDaemon.ps1
Deploy-IoTEdge

提供的脚本已签名以提高安全性。 可以通过将脚本下载到设备来验证签名,然后运行以下 PowerShell 命令:

Get-AuthenticodeSignature "C:\<path>\IotEdgeSecurityDaemon.ps1"

如果已验证签名,则输出状态 有效

Deploy-IoTEdge

Deploy-IoTEdge 命令下载并部署 IoT Edge 安全守护程序及其依赖项。 部署命令接受这些常见参数等。 对于完整列表,请使用命令 Get-Help Deploy-IoTEdge -full

参数 可接受的值 注释
ContainerOs WindowsLinux 如果未指定容器作系统,则 Windows 是默认值。

对于 Windows 容器,IoT Edge 使用安装中包含的 Moby 容器引擎。 对于 Linux 容器,需要在开始安装之前安装容器引擎。
代理 代理 URL 如果设备需要通过代理服务器访问 Internet,请包含此参数。 有关详细信息,请参阅将 IoT Edge 设备配置为通过代理服务器进行通信
FlineInstallationPath 目录路径 如果包含此参数,安装程序将检查安装所需的 IoT Edge cab 和 VC 运行时 MSI 文件的列出的目录。 下载目录中未找到的任何文件。 如果这两个文件都位于目录中,则可以在没有 Internet 连接的情况下安装 IoT Edge。 还可以使用此参数来使用特定版本。
InvokeWebRequestParameters 参数和值的哈希表 在安装期间,会发出多个 Web 请求。 使用此字段设置这些 Web 请求的参数。 此参数可用于配置代理服务器的凭据。 有关详细信息,请参阅将 IoT Edge 设备配置为通过代理服务器进行通信
RestartIfNeeded 没有 此标志允许部署脚本在必要时重启计算机,而无需提示。

Initialize-IoTEdge

Initialize-IoTEdge 命令使用设备连接字符串和作详细信息配置 IoT Edge。 然后,此命令生成的大部分信息存储在 iotedge\config.yaml 文件中。 初始化命令接受这些常见参数等。 对于完整列表,请使用命令 Get-Help Initialize-IoTEdge -full

参数 可接受的值 注释
ManualConnectionString 没有 Switch 参数默认值。 如果未指定预配类型,则使用连接字符串进行手动预配是默认值。

声明你将提供设备连接字符串来手动预配设备。
ManualX509 没有 Switch 参数。 如果未指定预配类型,则使用连接字符串进行手动预配是默认值。

声明你将提供标识证书和私钥来手动预配设备。
DpsTpm 没有 Switch 参数。 如果未指定预配类型,则使用连接字符串进行手动预配是默认值。

声明你将提供设备预配服务(DPS)范围 ID 和设备注册 ID,以便通过 DPS 进行预配。
DpsSymmetricKey 没有 Switch 参数。 如果未指定预配类型,则使用连接字符串进行手动预配是默认值。

声明你将提供设备预配服务(DPS)范围 ID 和设备的注册 ID,以便通过 DPS 进行预配,以及用于证明的对称密钥。
DpsX509 没有 Switch 参数。 如果未指定预配类型,则使用连接字符串进行手动预配是默认值。

声明你将提供设备预配服务(DPS)范围 ID 和设备的注册 ID,以便通过 DPS 进行预配,以及用于证明的 X.509 标识证书和私钥。
DeviceConnectionString IoT 中心注册的 IoT Edge 设备的连接字符串,单引号 使用连接字符串进行手动预配所需的。 如果未在脚本参数中提供连接字符串,系统会提示输入连接字符串。
IotHubHostName 设备连接到的 IoT 中心的主机名。 使用 X.509 证书进行手动预配所需的。 采用 {hub name}.azure-devices.net的格式。
DeviceId IoT 中心已注册设备标识中的设备 ID。 使用 X.509 证书进行手动预配所需的
ScopeId 与 IoT 中心关联的设备预配服务的实例中的范围 ID。 DPS 预配所需的。 如果未在脚本参数中提供范围 ID,系统会提示输入范围 ID。
RegistrationId 设备生成的注册 ID 如果使用 TPM 或对称密钥证明,则 DPS 预配所需的。 如果使用 X.509 证书证明,则 可选
X509IdentityCertificate 设备上 X.509 设备标识证书的 URI 路径。 如果使用 X.509 证书证明,则 手动预配或 DPS 预配所需的
X509IdentityPrivateKey 设备上 X.509 设备标识证书密钥的 URI 路径。 如果使用 X.509 证书证明,则 手动预配或 DPS 预配所需的
SymmetricKey 使用 DPS 时用于预配 IoT Edge 设备标识的对称密钥 如果使用对称密钥证明,则为 DPS 预配 必需
ContainerOs WindowsLinux 如果未指定容器作系统,则 Windows 是默认值。

对于 Windows 容器,IoT Edge 使用安装中包含的 Moby 容器引擎。 对于 Linux 容器,需要在开始安装之前安装容器引擎。
DeviceCACertificate 设备上 X.509 设备 CA 证书的 URI 路径。 也可以在 C:\ProgramData\iotedge\config.yaml 文件中配置。 有关详细信息,请参阅 管理 IoT Edge 设备上的证书
DeviceCAPrivateKey 设备上 X.509 设备 CA 私钥的 URI 路径。 也可以在 C:\ProgramData\iotedge\config.yaml 文件中配置。 有关详细信息,请参阅 管理 IoT Edge 设备上的证书
InvokeWebRequestParameters 参数和值的哈希表 在安装期间,会发出多个 Web 请求。 使用此字段设置这些 Web 请求的参数。 此参数可用于配置代理服务器的凭据。 有关详细信息,请参阅将 IoT Edge 设备配置为通过代理服务器进行通信
AgentImage IoT Edge 代理映像 URI 默认情况下,新的 IoT Edge 安装使用 IoT Edge 代理映像的最新滚动标记。 使用此参数可设置映像版本的特定标记,或提供自己的代理映像。 有关详细信息,请参阅 了解 IoT Edge 标记
用户名 容器注册表用户名 仅当将 -AgentImage 参数设置为专用注册表中的容器时,才使用此参数。 提供有权访问注册表的用户名。
密码 保护密码字符串 仅当将 -AgentImage 参数设置为专用注册表中的容器时,才使用此参数。 提供用于访问注册表的密码。

Update-IoTEdge

参数 可接受的值 注释
ContainerOs WindowsLinux 如果未指定容器 OS,则 Windows 是默认值。 对于 Windows 容器,容器引擎将包含在安装中。 对于 Linux 容器,需要在开始安装之前安装容器引擎。
代理 代理 URL 如果设备需要通过代理服务器访问 Internet,请包含此参数。 有关详细信息,请参阅将 IoT Edge 设备配置为通过代理服务器进行通信
InvokeWebRequestParameters 参数和值的哈希表 在安装期间,会发出多个 Web 请求。 使用此字段设置这些 Web 请求的参数。 此参数可用于配置代理服务器的凭据。 有关详细信息,请参阅将 IoT Edge 设备配置为通过代理服务器进行通信
FlineInstallationPath 目录路径 如果包含此参数,安装程序将检查安装所需的 IoT Edge cab 和 VC 运行时 MSI 文件的列出的目录。 下载目录中未找到的任何文件。 如果这两个文件都位于目录中,则可以在没有 Internet 连接的情况下安装 IoT Edge。 还可以使用此参数来使用特定版本。
RestartIfNeeded 没有 此标志允许部署脚本在必要时重启计算机,而无需提示。

Uninstall-IoTEdge

参数 可接受的值 注释
Force 没有 如果上一次尝试卸载失败,则此标志会强制卸载。
RestartIfNeeded 没有 此标志允许卸载脚本在必要时重启计算机,而无需提示。

后续步骤

了解如何在以下文章中使用以下命令: