IoT Edge for Linux on Windows 用の PowerShell 関数
適用対象: 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\AzureEFLOW
の WindowsPowerShell
ディレクトリー内にあります。
PowerShell ディレクトリにAzureEflow フォルダーがない場合は、次の手順を使用して、Azure IoT Edge for Linux on Windows をダウンロードしてインストールします。
管理者特権の 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
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>"
パラメーターを追加します。ターゲット デバイスの実行ポリシーを
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 | DirectDeviceAssignment、ParaVirtualization、または 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 | ManualConnectionString、ManualX509、DpsTPM、DpsX509、または 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 (DpsTPM、DpsX509、または DpsSymmetricKey)。 |
symmKey | 既存の DPS 登録の主キー、または対称キーを使用して登録された既存の IoT Edge デバイスの主キー | IoT Edge デバイスをプロビジョニングするための対称キー (DpsSymmetricKey)。 |
registrationId | 既存の IoT Edge デバイスの登録 ID | IoT Edge デバイスをプロビジョニングするための登録 ID (DpsSymmetricKey、DpsTPM)。 |
identityCertPath | ディレクトリ パス | Windows ホスト マシン上の ID 証明書の絶対宛先パス (ManualX509、DpsX509)。 |
identityPrivKeyPath | ディレクトリ パス | Windows ホスト マシン上の ID 秘密キーの絶対ソース パス (ManualX509、DpsX509)。 |
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 | DirectDeviceAssignment、ParaVirtualization、または 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 | DpsTpm、Defender | 切り替える機能の名前。 |
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 をインストールおよびプロビジョニングする方法を確認します。