IoT Edge for Linux on Windows 用の PowerShell 関数

適用対象: IoT Edge 1.4 チェックマーク IoT Edge 1.4

重要

Azure IoT Edge 1.5 LTS と IoT Edge 1.4 はサポートされているリリースです。 IoT Edge 1.4 LTS は、2024 年 11 月 12 日にサービスの終了を迎えます。 以前のリリースの場合は、「IoT Edge を更新する」を参照してください。

IoT Edge for Linux on Windows (EFLOW) 仮想マシンのデプロイ、プロビジョニング、状態取得のための PowerShell 関数について説明します。

前提条件

この記事で説明されているコマンドは、AzureEFLOW.psm1 ファイルからのものです。これは、ご使用のシステムの C:\Program Files\WindowsPowerShell\Modules\AzureEFLOWWindowsPowerShell ディレクトリー内にあります。

PowerShell ディレクトリにAzureEflow フォルダーがない場合は、次の手順を使用して、Azure IoT Edge for Linux on Windows をダウンロードしてインストールします。

  1. 管理者特権の PowerShell セッションで、次の各コマンドを実行し、IoT Edge for Linux on Windows をダウンロードします。

    • X64、AMD64
    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
    
    • ARM64
    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
    
  2. IoT Edge for Linux on Windows をデバイスにインストールします。

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    カスタムのインストールおよび VHDX ディレクトリを指定するには、インストール コマンドに INSTALLDIR="<FULLY_QUALIFIED_PATH>" および VHDXDIR="<FULLY_QUALIFIED_PATH>" パラメーターを追加します。

  3. ターゲット デバイスの実行ポリシーを AllSigned 以上に設定します。

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Add-EflowNetwork

Add-EflowNetwork コマンドは、EFLOW 仮想マシンに新しいネットワークを追加します。 このコマンドには 2 つのパラメーターを指定します。

パラメーター 指定可能な値 説明
vswitchName 仮想スイッチの名前 EFLOW VM に割り当てられた仮想スイッチの名前。
vswitchType 内部または外部 EFLOW VM に割り当てられた仮想スイッチの種類。

これは、次の 4 つのプロパティを含むオブジェクトを返します。

  • 名前
  • AllocationMethod
  • Cidr
  • Type

詳細については、コマンド Get-Help Add-EflowNetwork -full を使用してください。

Add-EflowVmEndpoint

Add-EflowVmEndpoint コマンドは、EFLOW 仮想マシンに新しいネットワーク エンドポイントを追加します。 静的 IP を設定するには、オプション パラメーターを使用します。

パラメーター 指定可能な値 説明
vswitchName 仮想スイッチの名前 EFLOW VM に割り当てられた仮想スイッチの名前。
vendpointName 仮想エンドポイントの名前 EFLOW VM に割り当てられた仮想エンドポイントの名前。
ip4Address DHCP サーバー スコープの範囲内の IPv4 アドレス EFLOW VM の静的 IPv4 アドレス。
ip4PrefixLength サブネットの IPv4 プレフィックス長 IPv4 サブネット プレフィックス長。静的 IPv4 アドレスが指定されている場合にのみ有効です。
ip4GatewayAddress サブネット ゲートウェイの IPv4 アドレス ゲートウェイ IPv4 アドレス。静的 IPv4 アドレスが指定されている場合にのみ有効です。

これは、次の 4 つのプロパティを含むオブジェクトを返します。

  • 名前
  • MacAddress
  • HealthStatus
  • IpConfiguration

詳細については、コマンド Get-Help Add-EflowVmEndpoint -full を使用してください。

Add-EflowVmSharedFolder

Add-EflowVmSharedFolder コマンドを使用すると、1 つ以上の Windows ホスト OS フォルダーを EFLOW 仮想マシンと共有できます。

パラメーター 指定可能な値 説明
sharedFoldersJsonPath String 共有フォルダー JSON 構成ファイルへのパス。

この JSON 構成ファイルには、次の構造体が必要です。

  • sharedFOlderRoot: EFLOW 仮想マシンと共有するすべてのフォルダーを含む Windows ルート フォルダーへのパス。
  • hostFolderPath: EFLOW VM と共有するフォルダーの (親ルート フォルダーへの) 相対パス。
  • readOnly: 共有フォルダーが EFLOW 仮想マシンから書き込み可能か、読み取り専用かを定義します (値は false または true)。
  • targetFolderOnGuest : Windows ホスト OS フォルダーがマウントされている EFLOW 仮想マシン内のフォルダー パス。
[
   {
      "sharedFolderRoot": "<shared-folder-root-windows-path>",
      "sharedFolders": [ 
        { "hostFolderPath": "<path-shared-folder>", 
            "readOnly": "<read-only>", 
            "targetFolderOnGuest": "<linux-mounting-point>" 
        }
      ]
   }
]

詳細については、コマンド Get-Help Add-EflowVmSharedFolder -full を使用してください。

Connect-EflowVm

Connect-EflowVm コマンドでは、SSH を使用して仮想マシンに接続します。 仮想マシンへの SSH 接続が許可されるアカウントは、それを作成したユーザーだけです。

このコマンドは、ホスト デバイスで実行されている PowerShell セッションでのみ機能します。 Windows Admin Center または PowerShell ISE を使用する場合は機能しません。

詳細については、コマンド Get-Help Connect-EflowVm -full を使用してください。

Copy-EflowVmFile

Copy-EflowVmFile コマンドは、SCP を使用して、仮想マシンとの間でファイルをコピーします。 省略可能なパラメーターを使用して、コピー元およびコピー先のファイル パスとコピーの方向を指定します。

ユーザー iotedge-user は、仮想マシン上の元のディレクトリすべてに対する読み取りアクセス許可を持っているか、コピー先ディレクトリすべてに対する書き込みアクセス許可を持っている必要があります。

パラメーター 指定可能な値 説明
fromFile ファイルへのパスを表す文字列 読み取り元のファイルを定義します。
toFile ファイルへのパスを表す文字列 書き込み先のファイルを定義します。
pushFile なし このフラグは、コピーの方向を示します。 指定した場合、このコマンドにより、仮想マシンにファイルがプッシュされます。 指定しない場合、このコマンドにより、仮想マシンからファイルがプルされます。

詳細については、コマンド Get-Help Copy-EflowVMFile -full を使用してください。

Deploy-Eflow

Deploy-Eflow コマンドは、メインのデプロイ方法です。 このデプロイ コマンドによって仮想マシンが作成され、ファイルがプロビジョニングされ、IoT Edge エージェント モジュールがデプロイされます。 どのパラメーターも必須ではありませんが、作成時に仮想マシンの設定を変更するために使用できます。

パラメーター 指定可能な値 説明
acceptEula Yes または No EULA を受け入れまたは拒否し、EULA プロンプトをバイパスするためのショートカット。
acceptOptionalTelemetry Yes または No 省略可能なテレメトリを受け入れまたは拒否し、テレメトリのプロンプトをバイパスするためのショートカット。
cpuCount 1 からデバイスの CPU コア数の範囲の整数値 VM の CPU コア数。

既定値: 1 仮想コア。
memoryInMB 1024 からデバイスの空きメモリの最大容量の範囲の整数値 (偶数) VM に割り当てられたメモリ。

既定値: 1024 MB。
vmDiskSize 21 GB から 2 TB 容量可変の仮想ハード ディスクの最大論理ディスク サイズ。

既定値: 29 GB。

: vmDiskSize または vmDataSize はどちらも使用できますが、両方を一緒に使用することはできません。
vmDataSize 2 GB から 2 TB 生成されるハード ディスクの最大データ パーティション サイズ (GB 単位)。

既定値: 10 GB。

: vmDiskSize または vmDataSize はどちらも使用できますが、両方を一緒に使用することはできません。
vmLogSize Small または Large ログ パーティションのサイズを指定しします。 Small = 1GB、Large = 6GB。

規定値: Small。
vswitchName 仮想スイッチの名前 EFLOW VM に割り当てられた仮想スイッチの名前。
vswitchType 内部または外部 EFLOW VM に割り当てられた仮想スイッチの種類。
ip4Address DHCP サーバー スコープの範囲内の IPv4 アドレス EFLOW VM の静的 IPv4 アドレス。
ip4PrefixLength サブネットの IPv4 プレフィックス長 IPv4 サブネット プレフィックス長。静的 IPv4 アドレスが指定されている場合にのみ有効です。
ip4GatewayAddress サブネット ゲートウェイの IPv4 アドレス ゲートウェイ IPv4 アドレス。静的 IPv4 アドレスが指定されている場合にのみ有効です。
gpuName GPU デバイス名 パススルーに使用される GPU デバイスの名前。
gpuPassthroughType DirectDeviceAssignmentParaVirtualization、または none (CPU のみ) GPU パススルーの種類
gpuCount 1 からデバイスの GPU コア数の範囲の整数値 VM の GPU デバイスの数。

: ParaVirtualization を使用する場合は、必ず gpuCount = 1 を設定してください
customSsh なし ユーザーがカスタムの OpenSSH.Client インストールを使用するかどうかを決定します。 存在する場合は、ssh.exe を EFLOW PSM で使用できる必要があります。
sharedFoldersJsonPath String 共有フォルダー JSON 構成ファイルへのパス。

詳細については、コマンド Get-Help Deploy-Eflow -full を使用してください。

Get-EflowHostConfiguration

Get-EflowHostConfiguration コマンドを実行すると、ホスト構成が返されます。 このコマンドはパラメーターを受け取りません。 これは、次の 4 つのプロパティを含むオブジェクトを返します。

  • FreePhysicalMemoryInMB
  • NumberOfLogicalProcessors
  • DiskInfo
  • GpuInfo

詳細については、コマンド Get-Help Get-EflowHostConfiguration -full を使用してください。

Get-EflowLogs

Get-EflowLogs コマンドを実行すると、IoT Edge for Linux on Windows のデプロイとインストールからログが収集され、バンドルされます。 バンドルされたログは、.zip フォルダーの形式で出力されます。

詳細については、コマンド Get-Help Get-EflowLogs -full を使用してください。

Get-EflowNetwork

Get-EflowNetwork コマンドは、EFLOW 仮想マシンに割り当てられたネットワークのリストを返します。 特定のネットワークを取得するには、オプション パラメーターを使用します。

パラメーター 指定可能な値 説明
vswitchName 仮想スイッチの名前 EFLOW VM に割り当てられた仮想スイッチの名前。

次の 4 つのプロパティを含んだオブジェクトのリストが返されます。

  • 名前
  • AllocationMethod
  • Cidr
  • Type

詳細については、コマンド Get-Help Get-EflowNetwork -full を使用してください。

Get-EflowVm

Get-EflowVm コマンドを実行すると、仮想マシンの現在の構成が返されます。 このコマンドはパラメーターを受け取りません。 これは、次の 4 つのプロパティを含むオブジェクトを返します。

  • VmConfiguration
  • VmPowerState
  • EdgeRuntimeVersion
  • EdgeRuntimeStatus
  • SystemStatistics

読み取り可能なリスト内の特定のプロパティを表示するには、そのプロパティを展開して Get-EflowVM コマンドを実行します。 次に例を示します。

Get-EflowVM | Select -ExpandProperty VmConfiguration | Format-List

詳細については、コマンド Get-Help Get-EflowVm -full を使用してください。

Get-EflowVmAddr

Get-EflowVmAddr コマンドは、仮想マシンの現在の IP と MAC アドレスに対してクエリを実行するために使用されます。 このコマンドは、IP と MAC アドレスが時間の経過と共に変わる場合があるという事実を考慮して存在しています。

追加情報については、Get-Help Get-EflowVmAddr -full コマンドを使用してください。

Get-EflowVmEndpoint

Get-EflowVmEndpoint コマンドは、EFLOW 仮想マシンに割り当てられたネットワーク エンドポイントのリストを返します。 特定のネットワーク エンドポイントを取得するには、オプション パラメーターを使用します。

パラメーター 指定可能な値 説明
vswitchName 仮想スイッチの名前 EFLOW VM に割り当てられた仮想スイッチの名前。

次の 4 つのプロパティを含んだオブジェクトのリストが返されます。

  • 名前
  • MacAddress
  • HealthStatus
  • IpConfiguration

詳細については、コマンド Get-Help Get-EflowVmEndpoint -full を使用してください。

Get-EflowVmFeature

Get-EflowVmFeature コマンドを実行すると、IoT Edge for Linux on Windows の機能の有効化の状態が返されます。

パラメーター 指定可能な値 説明
feature DpsTpm クエリを実行する機能名。

詳細については、コマンド Get-Help Get-EflowVmFeature -full を使用してください。

Get-EflowVmName

Get-EflowVmName コマンドを実行すると、仮想マシンの現在のホスト名が返されます。 このコマンドは、Windows ホスト名が時間の経過と共に変わる場合があるという事実を考慮して存在しています。

詳細については、コマンド Get-Help Get-EflowVmName -full を使用してください。

Get-EflowVmSharedFolder

Get-EflowVmSharedFolder コマンドは、EFLOW 仮想マシンと共有している 1 つ以上の Windows ホスト OS フォルダーに関する情報を返します。

パラメーター 指定可能な値 説明
sharedfolderRoot String Windows ホスト OS 共有ルート フォルダーへのパス。
hostFolderPath 文字列またはリスト Windows ホスト OS 共有フォルダーの (ルート フォルダーへの) 相対パス/パス。

次の 4 つのプロパティを持つオブジェクトのリストが返されます。

  • hostFolderPath: EFLOW VM と共有しているフォルダーの (親ルート フォルダーへの) 相対パス。
  • readOnly: 共有フォルダーが EFLOW 仮想マシンから書き込み可能か、読み取り専用かを定義します (値は false または true)。
  • targetFolderOnGuest: Windows フォルダーがマウントされている EFLOW 仮想マシン内のフォルダー パス。

詳細については、コマンド Get-Help Get-EflowVmSharedFolder -full を使用してください。

Get-EflowVmTelemetryOption

Get-EflowVmTelemetryOption コマンドを実行すると、仮想マシン内のテレメトリ (Optional または Required) の状態が表示されます。

詳細については、コマンド Get-Help Get-EflowVmTelemetryOption -full を使用してください。

Get-EflowVmTpmProvisioningInfo

Get-EflowVmTpmProvisioningInfo コマンドを実行すると、TPM プロビジョニング情報が返されます。 このコマンドはパラメーターを受け取りません。 これは、次の 2 つのプロパティを含むオブジェクトを返します。

  • 保証キー
  • 登録 ID

詳細については、コマンド Get-Help Get-EflowVmTpmProvisioningInfo -full を使用してください。

Invoke-EflowVmCommand

Invoke-EflowVMCommand コマンドを実行すると、仮想マシン内で Linux コマンドが実行され、出力が返されます。 このコマンドは、有限の出力を返す Linux コマンドに対してのみ機能します。 ユーザー操作が必要、または無期限に実行される Linux コマンドには使用できません。

次の省略可能なパラメーターを使用して、コマンドを事前に指定できます。

パラメーター 指定可能な値 説明
command String VM で実行されるコマンド。
ignoreError なし このフラグを指定した場合、コマンドからのエラーが無視されます。

詳細については、コマンド Get-Help Invoke-EflowVmCommand -full を使用してください。

Provision-EflowVm

Provision-EflowVm コマンドを実行すると、IoT Edge デバイスのプロビジョニング情報が仮想マシンの IoT Edge の config.yaml ファイルに追加されます。

パラメーター 指定可能な値 説明
provisioningType ManualConnectionStringManualX509DpsTPMDpsX509、または DpsSymmetricKey IoT Edge デバイスに使用するプロビジョニングの種類を定義します。
devConnString 既存の IoT Edge デバイスのデバイス接続文字列 IoT Edge デバイスを手動でプロビジョニングするためのデバイス接続文字列 (ManualConnectionString)。
iotHubHostname 既存の IoT ハブのホスト名 IoT Edge デバイスをプロビジョニングするための Azure IoT Hub ホスト名 (ManualX509)。
deviceId 既存の IoT Edge デバイスのデバイス ID IoT Edge デバイスをプロビジョニングするためのデバイス ID (ManualX509)。
scopeId 既存の DPS インスタンスのスコープ ID。 IoT Edge デバイスをプロビジョニングするためのスコープ ID (DpsTPMDpsX509、または DpsSymmetricKey)。
symmKey 既存の DPS 登録の主キー、または対称キーを使用して登録された既存の IoT Edge デバイスの主キー IoT Edge デバイスをプロビジョニングするための対称キー (DpsSymmetricKey)。
registrationId 既存の IoT Edge デバイスの登録 ID IoT Edge デバイスをプロビジョニングするための登録 ID (DpsSymmetricKeyDpsTPM)。
identityCertPath ディレクトリ パス Windows ホスト マシン上の ID 証明書の絶対宛先パス (ManualX509DpsX509)。
identityPrivKeyPath ディレクトリ パス Windows ホスト マシン上の ID 秘密キーの絶対ソース パス (ManualX509DpsX509)。
globalEndpoint デバイス エンドポイントの URL DPS プロビジョニングに使用するグローバル エンドポイントの URL。

詳細については、コマンド Get-Help Provision-EflowVm -full を使用してください。

Remove-EflowNetwork

Remove-EflowNetwork コマンドは、EFLOW 仮想マシンにアタッチされている既存のネットワークを削除します。 このコマンドはパラメーターを 1 つ受け取ります。

パラメーター 指定可能な値 説明
vswitchName 仮想スイッチの名前 EFLOW VM に割り当てられた仮想スイッチの名前。

詳細については、コマンド Get-Help Remove-EflowNetwork -full を使用してください。

Remove-EflowVmEndpoint

Remove-EflowVmEndpoint コマンドは、EFLOW 仮想マシンにアタッチされている既存のネットワーク エンドポイントを削除します。 このコマンドはパラメーターを 1 つ受け取ります。

パラメーター 指定可能な値 説明
vendpointName 仮想エンドポイントの名前 EFLOW VM に割り当てられた仮想エンドポイントの名前。

詳細については、コマンド Get-Help Remove-EflowVmEndpoint -full を使用してください。

Remove-EflowVmSharedFolder

Remove-EflowVmSharedFolder コマンドは、Windows ホスト OS フォルダーと EFLOW 仮想マシンの共有を停止します。 このコマンドには 2 つのパラメーターを指定します。

パラメーター 指定可能な値 説明
sharedfolderRoot String Windows ホスト OS 共有ルート フォルダーへのパス。
hostFolderPath 文字列またはリスト Windows ホスト OS 共有フォルダーの (ルート フォルダーへの) 相対パス/パス。

詳細については、コマンド Get-Help Remove-EflowVmSharedFolder -full を使用してください。

Set-EflowVM

Set-EflowVM コマンドを実行すると、要求されたプロパティで仮想マシンの構成が更新されます。 仮想マシンの特定の構成を定義するには、省略可能なパラメーターを使用します。

パラメーター 指定可能な値 説明
cpuCount 1 からデバイスの CPU コア数の範囲の整数値 VM の CPU コア数。
memoryInMB 1024 からデバイスの空きメモリの最大容量の範囲の整数値 VM に割り当てられたメモリ。
gpuName GPU デバイス名 パススルーに使用される GPU デバイスの名前。
gpuPassthroughType DirectDeviceAssignmentParaVirtualization、または none (パススルーなし) GPU パススルーの種類
gpuCount 1 からデバイスの GPU コア数の範囲の整数値 VM の GPU デバイスの数。: DirectDeviceAssignment を使用する場合にのみ有効です
headless なし このフラグを指定した場合、これにより、セキュリティ警告が発行された場合にユーザーが確認する必要があるかどうかが決まります。

詳細については、コマンド Get-Help Set-EflowVM -full を使用してください。

Set-EflowVmDNSServers

Set-EflowVmDNSServers コマンドは、EFLOW 仮想マシン用に DNS サーバーを構成します。

パラメーター 指定可能な値 説明
vendpointName 仮想エンドポイント名の文字列値 EFLOW VM に割り当てられている仮想インターフェイスを取得するには、Get-EflowVmEndpoint を使います。 例: DESKTOP-CONTOSO-EflowInterface
dnsServers 名前解決に使用する DNS サーバーの IP アドレスの一覧 例: @("10.0.10.1")

詳細については、コマンド Get-Help Set-EflowVmDNSServers -full を使用してください。

Set-EflowVmFeature

Set-EflowVmFeature コマンドを実行すると、IoT Edge for Linux on Windows の機能の状態が有効または無効になります。

パラメーター 指定可能な値 説明
feature DpsTpmDefender 切り替える機能の名前。
enable なし このフラグを指定した場合、コマンドによって機能が有効になります。

詳細については、コマンド Get-Help Set-EflowVmFeature -full を使用してください。

Set-EflowVmTelemetryOption

Set-EflowVmTelemetryOption コマンドを実行すると、仮想マシン内の省略可能なテレメトリが有効または無効になります。

パラメーター 指定可能な値 説明
optionalTelemetry True または False 省略可能なテレメトリが選択されるかどうか。

詳細については、コマンド Get-Help Set-EflowVmTelemetryOption -full を使用してください。

Start-EflowVm

Start-EflowVm コマンドを実行すると、仮想マシンが起動されます。 仮想マシンが既に起動されている場合、何のアクションも実行されません。

詳細については、コマンド Get-Help Start-EflowVm -full を使用してください。

Stop-EflowVm

Stop-EflowVm コマンドを実行すると、仮想マシンが停止されます。 仮想マシンが既に停止されている場合、何のアクションも実行されません。

詳細については、コマンド Get-Help Stop-EflowVm -full を使用してください。

Verify-EflowVm

Verify-EflowVm コマンドは、IoT Edge for Linux on Windows 仮想マシンが作成されたかどうかを確認するための公開された関数です。 これは一般的なパラメーターのみを受け取り、仮想マシンが作成された場合は True を返し、作成されていない場合は False をします。

詳細については、コマンド Get-Help Verify-EflowVm -full を使用してください。

次のステップ

次の記事で、これらのコマンドを使用して IoT Edge for Linux on Windows をインストールおよびプロビジョニングする方法を確認します。