使用 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 | Windows 或 Linux | 如果未指定容器作系统,则 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 | Windows 或 Linux | 如果未指定容器作系统,则 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 | Windows 或 Linux | 如果未指定容器 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 | 没有 | 此标志允许卸载脚本在必要时重启计算机,而无需提示。 |
后续步骤
了解如何在以下文章中使用以下命令:
- 使用对称密钥安装或卸载适用于 Windows 的 Azure IoT Edge,或使用 X.509 证书