次の方法で共有


Windows 上の Linux 用IoT Edge用 PowerShell 関数

:IoT Edge 1.5 チェックマーク IoT Edge 1.5

重要

IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update IoT Edgeを参照してください。

Windows (EFLOW) 仮想マシン上の Linux IoT Edgeのデプロイ、プロビジョニング、および状態の取得を行う PowerShell 関数について説明します。

前提条件

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

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

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

    • X64、AMD64
    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_X64" -OutFile $msiPath
    
    • ARM64
    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_ARM64" -OutFile $msiPath
    
  2. IoT Edge for Linux をデバイスの 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
  • タイプ

詳細については、コマンド 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: ホスト OS フォルダー Windowsマウントされている 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 コマンドは、メインのデプロイ方法です。 deployment コマンドは、仮想マシンを作成し、ファイルをプロビジョニングして、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 コマンドは、Windowsのデプロイとインストール時に linux のIoT Edgeからログを収集してバンドルします。 バンドルされたログは、.zip フォルダーの形式で出力されます。

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

Get-EflowNetwork

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

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

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

  • 名前
  • AllocationMethod
  • Cidr
  • タイプ

詳細については、コマンド 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 コマンドは、Windows機能での Linux のIoT Edgeの有効化の状態を返します。

パラメーター 指定可能な値 説明
フィーチャー 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.toml ファイルに追加します。

パラメーター 指定可能な値 説明
provisioningType ManualConnectionStringManualX509DpsTPMDpsX509、または DpsSymmetricKey IoT Edge デバイスに使用するプロビジョニングの種類を定義します。
devConnString 既存のIoT Edge デバイスのデバイス connection string IoT Edge デバイスを手動でプロビジョニングするためのデバイス connection string (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 コマンドは、Windows機能での Linux のIoT Edgeの状態を有効または無効にします。

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

詳細については、コマンド 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 コマンドは、仮想マシン上の Linux のIoT Edge Windows作成されたかどうかを確認する公開関数です。 これは一般的なパラメーターのみを受け取り、仮想マシンが作成された場合は True を返し、そうでない場合はfalseします。

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

次のステップ

次の記事で、これらのコマンドを使用して、Windows上の Linux IoT Edgeをインストールしてプロビジョニングする方法について説明します。

  • Windows