Windows コンテナーを使用した IoT Edge 用の PowerShell スクリプト

適用対象: [はい] アイコン IoT Edge 1.1

重要

IoT Edge 1.1 のサポート終了日は、2022 年 12 月 13 日でした。 本製品、サービス、テクノロジ、または API のサポート内容については、Microsoft 製品のライフサイクルに関するページをご確認ください。 最新バージョンの IoT Edge への更新の詳細については、「 Update IoT Edge」を参照してください。

Windows デバイスで IoT Edge をインストール、更新、またはアンインストールする PowerShell スクリプトについて説明します。

この記事で説明するコマンドは、すべての IoT Edge リリースと共にリリースされる IoTEdgeSecurityDaemon.ps1 ファイルからのものです。 最新バージョンのスクリプトは、いつでも aka.ms/iotedge-win で入手できます。

Invoke-WebRequest コマンドレットを使用して任意のコマンドを実行すると、最新のスクリプト バージョンにアクセスできます。 次に例を示します。

. {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 コマンドを使用してください。

パラメーター 指定可能な値 Comments
ContainerOs Windows または Linux コンテナーのオペレーティング システムを指定しない場合は、Windows が既定値です。

Windows コンテナーの場合、IoT Edge ではインストールに含まれる Moby コンテナー エンジンが使用されます。 Linux コンテナーの場合、インストールを開始する前にコンテナー エンジンをインストールする必要があります。
プロキシ プロキシ URL デバイスがインターネットに接続するためにプロキシ サーバーを経由する必要がある場合は、このパラメーターを含めます。 詳細については、「IoT Edge デバイスを構成してプロキシ サーバー経由で通信する」を参照してください。
OfflineInstallationPath ディレクトリ パス このパラメーターが含まれる場合、インストーラーはインストールに必要な IoT Edge cab ファイルと VC ランタイム MSI ファイルを、一覧で示されているディレクトリでチェックします。 ディレクトリで見つからないファイルはダウンロードされます。 両方のファイルがディレクトリにある場合は、インターネットに接続せずに IoT Edge をインストールできます。 特定のバージョンを使用するために、このパラメーターを使用することもできます。
InvokeWebRequestParameters パラメーターと値のハッシュ テーブル インストール中には、いくつかの Web 要求が行われます。 それらの Web 要求のパラメーターを設定するにはこのフィールドを使用します。 このパラメーターは、プロキシ サーバーの資格情報を構成するために使用すると便利です。 詳細については、「IoT Edge デバイスを構成してプロキシ サーバー経由で通信する」を参照してください。
RestartIfNeeded なし このフラグを使用すると、必要に応じて、デプロイ スクリプトでメッセージを表示せずにコンピューターを再起動できます。

Initialize-IoTEdge

Initialize-IoTEdge コマンドは、デバイスの接続文字列と運用の詳細で IoT Edge を構成します。 このコマンドによって生成される情報の多くは、その後 iotedge\config.yaml ファイルに格納されます。 初期化コマンドでは、たとえば次のような一般的なパラメーターが受け付けられます。 完全なリストについては、Get-Help Initialize-IoTEdge -full コマンドを使用してください。

パラメーター 指定可能な値 Comments
ManualConnectionString なし スイッチ パラメーター既定値。 プロビジョニングの種類が指定されていない場合は、接続文字列を使用した手動プロビジョニングが既定値です。

デバイス接続文字列を指定して、手動でデバイスをプロビジョニングすることを宣言します。
ManualX509 なし スイッチ パラメーター。 プロビジョニングの種類が指定されていない場合は、接続文字列を使用した手動プロビジョニングが既定値です。

ID 証明書と秘密キーを指定して、手動でデバイスをプロビジョニングすることを宣言します。
DpsTpm なし スイッチ パラメーター。 プロビジョニングの種類が指定されていない場合は、接続文字列を使用した手動プロビジョニングが既定値です。

Device Provisioning Service (DPS) 経由でプロビジョニングするために、DPS のスコープ ID とデバイスの登録 ID を指定することを宣言します。
DpsSymmetricKey なし スイッチ パラメーター。 プロビジョニングの種類が指定されていない場合は、接続文字列を使用した手動プロビジョニングが既定値です。

構成証明用の対称キーと一緒に Device Provisioning Service (DPS) のスコープ ID とデバイスの登録 ID を指定して、DPS を通してプロビジョニングすることを宣言します。
DpsX509 なし スイッチ パラメーター。 プロビジョニングの種類が指定されていない場合は、接続文字列を使用した手動プロビジョニングが既定値です。

構成証明用の X.509 ID 証明書および秘密キーと一緒に、Device Provisioning Service (DPS) のスコープ ID とデバイスの登録 ID を指定して、DPS を通してプロビジョニングすることを宣言します。
DeviceConnectionString 単一引用符で囲まれた、IoT Hub に登録されている IoT Edge デバイスからの接続文字列 接続文字列を使用した手動プロビジョニングには必須です。 スクリプト パラメーターに接続文字列を指定しなかった場合は、これを指定するよう促されます。
IotHubHostName デバイスの接続先となる IoT ハブのホスト名。 X.509 証明書を使用した手動プロビジョニングには必須です。 {ハブ名}.azure-devices.net の形式にします。
DeviceId IoT Hub に登録されているデバイス ID からのデバイス ID。 X.509 証明書を使用した手動プロビジョニングには必須です。
ScopeId IoT Hub に関連付けられた Device Provisioning Service のインスタンスからのスコープ ID。 DPS プロビジョニングの場合は必須です。 スクリプト パラメーターにスコープ ID を指定しなかった場合、これを指定するよう促されます。
RegistrationId デバイスによって生成された登録 ID DPS プロビジョニングの場合、TPM または対称キー構成証明を使用している場合は必須です。 X.509 証明書の構成証明を使用している場合は省略可能です。
X509IdentityCertificate デバイス上の X.509 デバイス ID 証明書への URI パス。 X.509 証明書の構成証明を使用している場合、手動または DPS のいずれかのプロビジョニングには必須です。
X509IdentityPrivateKey デバイス上の X.509 デバイス ID 証明書キーへの URI パス。 X.509 証明書の構成証明を使用している場合、手動または DPS のいずれかのプロビジョニングには必須です。
SymmetricKey DPS の使用時に IoT Edge デバイス ID をプロビジョニングするために使用される対称キー 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

パラメーター 指定可能な値 Comments
ContainerOs Windows または Linux コンテナー OS を指定しない場合、Windows が既定値になります。 Windows コンテナーの場合、コンテナー エンジンがインストールに含まれます。 Linux コンテナーの場合、インストールを開始する前にコンテナー エンジンをインストールする必要があります。
プロキシ プロキシ URL デバイスがインターネットに接続するためにプロキシ サーバーを経由する必要がある場合は、このパラメーターを含めます。 詳細については、「IoT Edge デバイスを構成してプロキシ サーバー経由で通信する」を参照してください。
InvokeWebRequestParameters パラメーターと値のハッシュ テーブル インストール中には、いくつかの Web 要求が行われます。 それらの Web 要求のパラメーターを設定するにはこのフィールドを使用します。 このパラメーターは、プロキシ サーバーの資格情報を構成するために使用すると便利です。 詳細については、「IoT Edge デバイスを構成してプロキシ サーバー経由で通信する」を参照してください。
OfflineInstallationPath ディレクトリ パス このパラメーターが含まれる場合、インストーラーはインストールに必要な IoT Edge cab ファイルと VC ランタイム MSI ファイルを、一覧で示されているディレクトリでチェックします。 ディレクトリで見つからないファイルはダウンロードされます。 両方のファイルがディレクトリにある場合は、インターネットに接続せずに IoT Edge をインストールできます。 特定のバージョンを使用するために、このパラメーターを使用することもできます。
RestartIfNeeded なし このフラグを使用すると、必要に応じて、デプロイ スクリプトでメッセージを表示せずにコンピューターを再起動できます。

Uninstall-IoTEdge

パラメーター 指定可能な値 Comments
Force なし このフラグは、前回のアンインストールの試行が失敗した場合に、アンインストールを強制します。
RestartIfNeeded なし このフラグを使用すると、必要に応じて、アンインストール スクリプトでメッセージを表示せずにコンピューターを再起動できます。

次のステップ

以下の記事で、これらのコマンドの使用方法を学習します。