IoT Edge for Linux on Windows용 PowerShell 함수

적용 대상:IoT Edge 1.4 checkmark IoT Edge 1.4

Important

IoT Edge 1.4는 지원되는 릴리스입니다. 이전 릴리스에 있는 경우 IoT Edge 업데이트를 참조하세요.

IoT Edge for Linux on Windows(EFLOW) 가상 머신의 상태 배포, 프로비전 및 가져오는 PowerShell 함수를 이해합니다.

필수 조건

이 문서에 설명된 명령은 AzureEFLOW.psm1 파일에서 가져온 것입니다. 이 파일은 C:\Program Files\WindowsPowerShell\Modules\AzureEFLOW 아래의 WindowsPowerShell 디렉터리에 있는 시스템에서 찾을 수 있습니다.

PowerShell 디렉터리에 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_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. 디바이스의 Windows에 Linux용 IoT Edge를 설치합니다.

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

    설치 명령에 매개 변수를 추가하여 INSTALLDIR="<FULLY_QUALIFIED_PATH>" 사용자 지정 설치 및 VHDXDIR="<FULLY_QUALIFIED_PATH>" VHDX 디렉터리를 지정할 수 있습니다.

  3. 대상 디바이스의 실행 정책을 AllSigned 이상으로 설정합니다.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Add-EflowNetwork

Add-EflowNetwork 명령은 EFLOW 가상 머신에 새 네트워크를 추가합니다. 해당 명령은 두 개의 매개 변수를 사용합니다.

매개 변수 허용되는 값 설명
vswitchName 가상 스위치의 이름 EFLOW VM에 할당된 가상 스위치의 이름입니다.
vswitchType 내부 또는 외부 EFLOW VM에 할당된 가상 스위치의 유형입니다.

네 가지 속성이 포함된 개체를 반환합니다.

  • 이름
  • AllocationMethod
  • Cidr
  • Type

자세한 내용을 보려면 Get-Help Add-EflowNetwork -full 명령을 사용하세요.

Add-EflowVmEndpoint

Add-EflowVmEndpoint 명령은 EFLOW 가상 머신에 새 네트워크 엔드포인트를 추가합니다. 선택적 매개 변수를 사용하여 고정 IP를 설정합니다.

매개 변수 허용되는 값 설명
vswitchName 가상 스위치의 이름 EFLOW VM에 할당된 가상 스위치의 이름입니다.
vendpointName 가상 엔드포인트의 이름 EFLOW VM에 할당된 가상 엔드포인트의 이름입니다.
ip4Address DCHP 서버 범위 범위의 IPv4 주소 EFLOW VM의 정적 Ipv4 주소입니다.
ip4PrefixLength 서브넷의 IPv4 접두사 길이 Ipv4 서브넷 접두사 길이이며 정적 Ipv4 주소가 지정된 경우에만 유효합니다.
ip4GatewayAddress 서브넷 게이트웨이의 IPv4 주소 게이트웨이 Ipv4 주소는 정적 Ipv4 주소가 지정된 경우에만 유효합니다.

네 가지 속성이 포함된 개체를 반환합니다.

  • 이름
  • MacAddress
  • HealthStatus
  • IPConfiguration

자세한 내용을 보려면 Get-Help Add-EflowVmEndpoint -full 명령을 사용하세요.

Add-EflowVmSharedFolder

Add-EflowVmSharedFolder 명령을 사용하면 하나 이상의 Windows 호스트 OS 폴더를 EFLOW 가상 머신과 공유할 수 있습니다.

매개 변수 허용되는 값 설명
sharedFoldersJsonPath 문자열 공유 폴더 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 또는 아니요를 선택합니다. EULA를 수락/거부하고 EULA 프롬프트를 바이패스하는 바로 가기입니다.
acceptOptionalTelemetry 또는 아니요를 선택합니다. 선택적 원격 분석을 수락/거부하고 원격 분석 프롬프트를 바이패스하는 바로 가기입니다.
cpuCount 1과 디바이스의 CPU 코어 사이의 정수 값 VM의 CPU 코어 수입니다.

기본값: 1 vCore.
memoryInMB 1024와 디바이스의 최대 여유 메모리 양 사이의 정수 짝수 VM에 할당된 메모리입니다.

기본값: 1024MB.
vmDiskSize 21GB~2TB 동적 확장 가상 하드 디스크의 최대 논리 디스크 크기입니다.

기본값: 29GB.

참고: vmDiskSize 또는 vmDataSize 중 하나를 사용할 수 있지만 둘 다 함께 사용할 수는 없습니다.
vmDataSize 2GB~2TB 결과 하드 디스크의 최대 데이터 파티션 크기(GB)입니다.

기본값: 10GB.

참고: vmDiskSize 또는 vmDataSize 중 하나를 사용할 수 있지만 둘 다 함께 사용할 수는 없습니다.
vmLogSize Small 또는 Large 로그 파티션 크기를 지정합니다. Small = 1GB, Large = 6GB.

기본값: Small.
vswitchName 가상 스위치의 이름 EFLOW VM에 할당된 가상 스위치의 이름입니다.
vswitchType 내부 또는 외부 EFLOW VM에 할당된 가상 스위치의 유형입니다.
ip4Address DCHP 서버 범위 범위의 IPv4 주소 EFLOW VM의 정적 Ipv4 주소입니다.
ip4PrefixLength 서브넷의 IPv4 접두사 길이 Ipv4 서브넷 접두사 길이이며 정적 Ipv4 주소가 지정된 경우에만 유효합니다.
ip4GatewayAddress 서브넷 게이트웨이의 IPv4 주소 게이트웨이 Ipv4 주소는 정적 Ipv4 주소가 지정된 경우에만 유효합니다.
gpuName GPU 디바이스 이름 통과에 사용할 GPU 디바이스의 이름입니다.
gpuPassthroughType DirectDeviceAssignment, ParaVirtualization 또는 없음(CPU만 해당) GPU 통과 유형
gpuCount 디바이스의 GPU 코어 수와 1 사이의 정수 값 VM에 대한 GPU 디바이스 수입니다.

참고: ParaVirtualization을 사용하는 경우 gpuCount = 1을 설정해야 합니다.
customSsh 없음 사용자가 사용자 지정 OpenSSH.Client 설치를 사용할지 여부를 결정합니다. 있는 경우 ssh.exe는 EFLOW PSM에서 사용할 수 있어야 합니다.
sharedFoldersJsonPath 문자열 공유 폴더 JSON 구성 파일의 경로입니다.

자세한 내용을 보려면 Get-Help Deploy-Eflow -full 명령을 사용하세요.

Get-EflowHostConfiguration

Get-EflowHostConfiguration 명령은 호스트 구성을 반환합니다. 이 명령은 매개 변수를 사용하지 않습니다. 네 가지 속성이 포함된 개체를 반환합니다.

  • 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에 할당된 가상 스위치의 이름입니다.

네 가지 속성을 포함하는 개체 목록을 반환합니다.

  • 이름
  • AllocationMethod
  • Cidr
  • Type

자세한 내용을 보려면 Get-Help Get-EflowNetwork -full 명령을 사용하세요.

Get-EflowVm

Get-EflowVm 명령은 가상 머신의 현재 구성을 반환합니다. 이 명령은 매개 변수를 사용하지 않습니다. 네 가지 속성이 포함된 개체를 반환합니다.

  • 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에 할당된 가상 스위치의 이름입니다.

네 가지 속성을 포함하는 개체 목록을 반환합니다.

  • 이름
  • 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 가상 머신과 공유되는 하나 이상의 Windows 호스트 OS 폴더에 대한 정보를 반환합니다.

매개 변수 허용되는 값 설명
sharedfolderRoot 문자열 Windows 호스트 OS 공유 루트 폴더의 경로입니다.
hostFolderPath 문자열 또는 목록 Windows 호스트 OS 공유 폴더에 대한 상대 경로(루트 폴더)입니다.

세 가지 속성을 포함하는 개체 목록을 반환합니다.

  • hostFolderPath: EFLOW VM과 공유되는 폴더의 상대 경로(부모 루트 폴더)입니다.
  • readOnly: 공유 폴더가 EFLOW 가상 머신에서 쓰기 가능한지 또는 읽기 전용인지 정의합니다. 값: false 또는 true.
  • targetFolderOnGuest: Windows 폴더가 탑재된 EFLOW 가상 머신 내부의 폴더 경로입니다.

자세한 내용을 보려면 Get-Help Get-EflowVmSharedFolder -full 명령을 사용하세요.

Get-EflowVmTelemetryOption

Get-EflowVmTelemetryOption 명령은 가상 머신 내에서 원격 분석(선택 사항 또는 필수)의 상태 표시합니다.

자세한 내용을 보려면 Get-Help Get-EflowVmTelemetryOption -full 명령을 사용하세요.

Get-EflowVmTpmProvisioningInfo

Get-EflowVmTpmProvisioningInfo 명령은 TPM 프로비저닝 정보를 반환합니다. 이 명령은 매개 변수를 사용하지 않습니다. 다음 두 가지 속성을 포함하는 개체를 반환합니다.

  • 인증 키
  • 등록 ID

자세한 내용을 보려면 Get-Help Get-EflowVmTpmProvisioningInfo -full 명령을 사용하세요.

Invoke-EflowVmCommand

Invoke-EflowVMCommand 명령은 가상 머신 내에서 Linux 명령을 실행하고 출력을 반환합니다. 이 명령은 유한 출력을 반환하는 Linux 명령에만 작동합니다. 사용자 상호 작용이 필요하거나 무기한 실행되는 Linux 명령에는 사용할 수 없습니다.

다음 선택적 매개 변수를 사용하여 사전에 명령을 지정할 수 있습니다.

매개 변수 허용되는 값 설명
command 문자열 VM에서 실행할 명령입니다.
ignoreError 없음 이 플래그가 있으면 명령에서 오류를 무시합니다.

자세한 내용을 보려면 Get-Help Invoke-EflowVmCommand -full 명령을 사용하세요.

Provision-EflowVm

Provision-EflowVm 명령은 IoT Edge 디바이스에 대한 프로비저닝 정보를 가상 머신의 IoT Edge config.yaml 파일에 추가합니다.

매개 변수 허용되는 값 설명
provisioningType Manual커넥트ionString, ManualX509, DpsTPM, DpsX509 또는 DpsSymmetricKey IoT Edge 디바이스에 사용할 프로비전 유형을 정의합니다.
devConnString 기존 IoT Edge 디바이스의 디바이스 연결 문자열 IoT Edge 디바이스를 수동으로 프로비전하기 위한 디바이스 연결 문자열(Manual커넥트ionString).
iotHubHostname 기존 IoT Hub의 호스트 이름 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 가상 머신에 연결된 기존 네트워크를 제거합니다. 이 명령은 하나의 매개 변수를 사용합니다.

매개 변수 허용되는 값 설명
vswitchName 가상 스위치의 이름 EFLOW VM에 할당된 가상 스위치의 이름입니다.

자세한 내용을 보려면 Get-Help Remove-EflowNetwork -full 명령을 사용하세요.

Remove-EflowVmEndpoint

Remove-EflowVmEndpoint 명령은 EFLOW 가상 머신에 연결된 기존 네트워크 엔드포인트를 제거합니다. 이 명령은 하나의 매개 변수를 사용합니다.

매개 변수 허용되는 값 설명
vendpointName 가상 엔드포인트의 이름 EFLOW VM에 할당된 가상 엔드포인트의 이름입니다.

자세한 내용을 보려면 Get-Help Remove-EflowVmEndpoint -full 명령을 사용하세요.

Remove-EflowVmSharedFolder

Remove-EflowVmSharedFolder 명령은 EFLOW 가상 머신에 대한 Windows 호스트 OS 폴더 공유를 중지합니다. 해당 명령은 두 개의 매개 변수를 사용합니다.

매개 변수 허용되는 값 설명
sharedfolderRoot 문자열 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를 사용하는 경우에만 유효합니다.
헤드리스 없음 이 플래그가 있으면 보안 경고가 발생할 경우 사용자가 확인해야 하는지 여부를 결정합니다.

자세한 내용을 보려면 Get-Help Set-EflowVM -full 명령을 사용하세요.

Set-EflowVmDNSServers

Set-EflowVmDNSServers 명령은 EFLOW 가상 머신용 DNS 서버를 구성합니다.

매개 변수 허용되는 값 설명
vendpointName 가상 엔드포인트 이름의 문자열 값 Get-EflowVmEndpoint를 사용하여 EFLOW VM에 할당된 가상 인터페이스를 가져옵니다. 예: DESKTOP-CONTOSO-EflowInterface
dnsServers 이름 확인에 사용할 DNS 서버 IPAddress 목록 예: @("10.0.10.1")

자세한 내용을 보려면 Get-Help Set-EflowVmDNSServers -full 명령을 사용하세요.

Set-EflowVmFeature

Set-EflowVmFeature 명령은 Windows 기능의 Linux용 IoT Edge 상태를 사용하거나 사용하지 않도록 설정합니다.

매개 변수 허용되는 값 설명
기능 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 명령을 사용하세요.

다음 단계

다음 문서에서 이러한 명령을 사용하여 Windows에서 Linux용 IoT Edge를 설치하고 프로비전하는 방법을 알아봅니다.