Funciones de PowerShell para IoT Edge para Linux en Windows

Se aplica a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

IoT Edge 1.4 es la versión admitida. Si está usando una versión anterior, consulte Actualización de IoT Edge.

Conozca las funciones de PowerShell que implementan, aprovisionan y obtienen el estado de su máquina virtual de IoT Edge para Linux en Windows (EFLOW).

Requisitos previos

Los comandos descritos en este artículo proceden del archivo AzureEFLOW.psm1, que puede encontrar en su sistema en el directorio WindowsPowerShell, en C:\Program Files\WindowsPowerShell\Modules\AzureEFLOW.

Si no tiene la carpeta AzureEflow en el directorio de PowerShell, siga estos pasos para descargar e instalar Azure IoT Edge para Linux en Windows:

  1. En una sesión de PowerShell con privilegios elevados, ejecute cada uno de los siguientes comandos para descargar IoT Edge para Linux en 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. Instale IoT Edge para Linux en Windows en el dispositivo.

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

    Puede especificar la instalación personalizada y los directorios VHDX agregando los parámetros INSTALLDIR="<FULLY_QUALIFIED_PATH>" y VHDXDIR="<FULLY_QUALIFIED_PATH>" al comando install.

  3. Establezca la directiva de ejecución del dispositivo de destino en AllSigned como mínimo.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Add-EflowNetwork

El comando Add-EflowNetwork agrega una nueva red a la máquina virtual EFLOW. Este comando toma dos parámetros.

Parámetro Valores aceptados Comentarios
vswitchName Nombre del conmutador virtual Nombre del conmutador virtual asignado a la VM EFLOW.
vswitchType Interno o externo Tipo del conmutador virtual asignado a la VM EFLOW.

Devuelve un objeto que contiene cuatro propiedades:

  • Nombre
  • AllocationMethod
  • Cidr
  • Tipo

Para obtener más información, use el comando Get-Help Add-EflowNetwork -full.

Add-EflowVmEndpoint

El comando Add-EflowVmEndpoint agrega un nuevo punto de conexión de red a la máquina virtual EFLOW. Use los parámetros opcionales para establecer una dirección IP estática.

Parámetro Valores aceptados Comentarios
vswitchName Nombre del conmutador virtual Nombre del conmutador virtual asignado a la VM EFLOW.
vendpointName Nombre del punto de conexión virtual Nombre del punto de conexión virtual asignado a la VM EFLOW.
ip4Address Dirección IPv4 en el intervalo del ámbito del servidor DCHP Dirección IPv4 estática de la VM EFLOW.
ip4PrefixLength Longitud del prefijo IPv4 de la subred Longitud del prefijo de subred IPv4, solo válida cuando se especifica una dirección IPv4 estática.
ip4GatewayAddress Dirección IPv4 de la puerta de enlace de subred Dirección IPv4 de puerta de enlace, solo válida cuando se especifica una dirección IPv4 estática.

Devuelve un objeto que contiene cuatro propiedades:

  • Nombre
  • MacAddress
  • HealthStatus
  • IpConfiguration

Para obtener más información, use el comando Get-Help Add-EflowVmEndpoint -full.

Add-EflowVmSharedFolder

El comando Add-EflowVmSharedFolder permite compartir una o varias carpetas del sistema operativo host de Windows con la máquina virtual EFLOW.

Parámetro Valores aceptados Comentarios
sharedFoldersJsonPath String Ruta de acceso al archivo de configuración JSON de las carpetas compartidas.

El archivo de configuración JSON debe tener la estructura siguiente:

  • sharedFOlderRoot: ruta de acceso a la carpeta raíz de Windows que contiene todas las carpetas que se van a compartir con la máquina virtual EFLOW.
  • hostFolderPath: ruta de acceso relativa (a la carpeta raíz primaria) de la carpeta que se va a compartir con la máquina virtual EFLOW.
  • readOnly: define si la carpeta compartida se puede escribir o será de solo lectura desde la máquina virtual EFLOW: valores: false o true.
  • targetFolderOnGuest: ruta de acceso de carpeta dentro de la máquina virtual EFLOW donde se montará la carpeta del sistema operativo host de Windows.
[
   {
      "sharedFolderRoot": "<shared-folder-root-windows-path>",
      "sharedFolders": [ 
        { "hostFolderPath": "<path-shared-folder>", 
            "readOnly": "<read-only>", 
            "targetFolderOnGuest": "<linux-mounting-point>" 
        }
      ]
   }
]

Para obtener más información, use el comando Get-Help Add-EflowVmSharedFolder -full.

Connect-EflowVm

El comando Connect-EflowVm se conecta a la máquina virtual mediante SSH. La única cuenta que se permite a SSH en la máquina virtual es la del usuario que la creó.

Este comando solo funciona en una sesión de PowerShell que se ejecuta en el dispositivo host. No funcionará al usar Windows Admin Center o PowerShell ISE.

Para obtener más información, use el comando Get-Help Connect-EflowVm -full.

Copy-EflowVmFile

El comando Copy-EflowVmFile copia el archivo hacia o desde la máquina virtual mediante SCP. Use los parámetros opcionales para especificar las rutas de acceso del archivo de origen y destino, así como la dirección de la copia.

El usuario iotedge-user debe tener permiso de lectura para los directorios de origen o permiso de escritura para los directorios de destino en la máquina virtual.

Parámetro Valores aceptados Comentarios
fromFile Cadena que represente la ruta de acceso al archivo Define el archivo del que se va a leer.
toFile Cadena que represente la ruta de acceso al archivo Define el archivo en el que se va a escribir.
pushFile Ninguno Esta marca indica la dirección de copia. Si está presente, el comando inserta el archivo en la máquina virtual. Si no está presente, el comando extrae el archivo de la máquina virtual.

Para obtener más información, use el comando Get-Help Copy-EflowVMFile -full.

Deploy-Eflow

El comando Deploy-Eflow es el método de implementación principal. El comando de implementación crea la máquina virtual, aprovisiona archivos e implementa el módulo de agente de IoT Edge. Aunque no se requiere ninguno de los parámetros, se pueden usar para modificar la configuración de la máquina virtual durante la creación.

Parámetro Valores aceptados Comentarios
acceptEula o No. Acceso directo para aceptar o denegar el CLUF y omitir el aviso del CLUF.
acceptOptionalTelemetry o No. Acceso directo para aceptar o denegar la telemetría opcional y omitir el mensaje de telemetría.
cpuCount Valor entero entre 1 y el número de núcleos de CPU del dispositivo Número de núcleos de CPU para la VM.

Valor predeterminado: 1 núcleo virtual.
memoryInMB Valor entero entre 1024 y la cantidad máxima de memoria libre del dispositivo. Memoria asignada para la VM.

Valor predeterminado: 1024 MB.
vmDiskSize Entre 21 GB y 2 TB. Tamaño de disco lógico máximo del disco duro virtual de expansión dinámica.

Valor predeterminado: 29 GB.

Nota: Se puede usar vmDiskSize o vmDataSize, pero no ambos juntos.
vmDataSize Entre 2 GB y 2 TB. Tamaño máximo de partición de datos del disco duro resultante, en GB.

Valor predeterminado: 10 GB.

Nota: Se puede usar vmDiskSize o vmDataSize, pero no ambos juntos.
vmLogSize Tamaño pequeño o Grande Especifique el tamaño de la partición de registro. Tamaño pequeño = 1 GB, Grande = 6 GB.

Valor predeterminado: Tamaño pequeño.
vswitchName Nombre del conmutador virtual Nombre del conmutador virtual asignado a la VM EFLOW.
vswitchType Interno o externo Tipo del conmutador virtual asignado a la VM EFLOW.
ip4Address Dirección IPv4 en el intervalo del ámbito del servidor DCHP Dirección IPv4 estática de la VM EFLOW.
ip4PrefixLength Longitud del prefijo IPv4 de la subred Longitud del prefijo de subred IPv4, solo válida cuando se especifica una dirección IPv4 estática.
ip4GatewayAddress Dirección IPv4 de la puerta de enlace de subred Dirección IPv4 de puerta de enlace, solo válida cuando se especifica una dirección IPv4 estática.
gpuName Nombre de dispositivo GPU Nombre del dispositivo GPU que se va a usar para el tránsito.
gpuPassthroughType DirectDeviceAssignment, ParaVirtualization o ninguno (solo CPU) Tipo de tránsito de GPU
gpuCount Valor entero entre 1 y el número de núcleos de la GPU del dispositivo Número de dispositivos GPU para la VM.

Nota: Si usa ParaVirtualization, asegúrese de establecer gpuCount = 1.
customSsh Ninguno Determina si el usuario quiere usar su instalación personalizada de OpenSSH.Client. Si está presente, ssh.exe debe estar disponible para el PSM de EFLOW
sharedFoldersJsonPath String Ruta de acceso al archivo de configuración JSON de las carpetas compartidas.

Para obtener más información, use el comando Get-Help Deploy-Eflow -full.

Get-EflowHostConfiguration

El comando Get-EflowHostConfiguration devuelve la configuración del host. Este comando no toma parámetros. Devuelve un objeto que contiene cuatro propiedades:

  • FreePhysicalMemoryInMB
  • NumberOfLogicalProcessors
  • DiskInfo
  • GpuInfo

Para obtener más información, use el comando Get-Help Get-EflowHostConfiguration -full.

Get-EflowLogs

El comando Get-EflowLogs recopila y agrupa los registros de la implementación e instalación de IoT Edge para Linux en Windows. Genera los registros agrupados en forma de una carpeta .zip.

Para obtener más información, use el comando Get-Help Get-EflowLogs -full.

Get-EflowNetwork

El comando Get-EflowNetwork devuelve una lista de las redes asignadas a la máquina virtual EFLOW. Use el parámetro opcional para obtener una red específica.

Parámetro Valores aceptados Comentarios
vswitchName Nombre del conmutador virtual Nombre del conmutador virtual asignado a la VM EFLOW.

Devuelve una lista de objetos con cuatro propiedades:

  • Nombre
  • AllocationMethod
  • Cidr
  • Tipo

Para obtener más información, use el comando Get-Help Get-EflowNetwork -full.

Get-EflowVm

El comando Get-EflowVm devuelve la configuración actual de la máquina virtual. Este comando no toma parámetros. Devuelve un objeto que contiene cuatro propiedades:

  • VmConfiguration
  • VmPowerState
  • EdgeRuntimeVersion
  • EdgeRuntimeStatus
  • SystemStatistics

Para ver una propiedad específica en una lista legible, ejecute el comando Get-EflowVM con la propiedad expandida. Por ejemplo:

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

Para obtener más información, use el comando Get-Help Get-EflowVm -full.

Get-EflowVmAddr

El comando Get-EflowVmAddr se usa para consultar las direcciones IP y MAC actuales de la máquina virtual. Este comando existe para tener en cuenta el hecho de que las direcciones IP y MAC pueden cambiar con el tiempo.

Para obtener información adicional, use el comando Get-Help Get-EflowVmAddr -full.

Get-EflowVmEndpoint

El comando Get-EflowVmEndpoint devuelve una lista de los puntos de conexión de red asignados a la máquina virtual EFLOW. Use el parámetro opcional para obtener un punto de conexión de red específico.

Parámetro Valores aceptados Comentarios
vswitchName Nombre del conmutador virtual Nombre del conmutador virtual asignado a la VM EFLOW.

Devuelve una lista de objetos con cuatro propiedades:

  • Nombre
  • MacAddress
  • HealthStatus
  • IpConfiguration

Para obtener más información, use el comando Get-Help Get-EflowVmEndpoint -full.

Get-EflowVmFeature

El comando Get-EflowVmFeature devuelve el estado de la habilitación de las características de IoT Edge para Linux en Windows.

Parámetro Valores aceptados Comentarios
feature DpsTpm Nombre de la característica que se va a consultar.

Para obtener más información, use el comando Get-Help Get-EflowVmFeature -full.

Get-EflowVmName

El comando Get-EflowVmName devuelve el nombre de host actual de la máquina virtual. Este comando existe para tener en cuenta el hecho de que el nombre de host de Windows puede cambiar con el tiempo.

Para obtener más información, use el comando Get-Help Get-EflowVmName -full.

Get-EflowVmSharedFolder

El comando Get-EflowVmSharedFolder devuelve información sobre una o varias carpetas del sistema operativo host de Windows compartidas con la máquina virtual EFLOW.

Parámetro Valores aceptados Comentarios
sharedfolderRoot String Ruta de acceso a la carpeta raíz compartida del sistema operativo host de Windows.
hostFolderPath Cadena o lista Rutas de acceso relativas (a la carpeta raíz) a la carpeta compartida del sistema operativo host de Windows.

Devuelve una lista de objetos con tres propiedades:

  • hostFolderPath: ruta de acceso relativa (a la carpeta raíz primaria) de la carpeta que se va a compartir con la máquina virtual EFLOW.
  • readOnly: define si la carpeta compartida se puede escribir o será de solo lectura desde la máquina virtual EFLOW: valores: false o true.
  • targetFolderOnGuest: ruta de acceso de carpeta dentro de la máquina virtual EFLOW donde se montará la carpeta de Windows.

Para obtener más información, use el comando Get-Help Get-EflowVmSharedFolder -full.

Get-EflowVmTelemetryOption

El comando Get-EflowVmTelemetryOption muestra el estado de la telemetría (Opcional u Obligatorio) dentro de la máquina virtual.

Para obtener más información, use el comando Get-Help Get-EflowVmTelemetryOption -full.

Get-EflowVmTpmProvisioningInfo

El comando Get-EflowVmTpmProvisioningInfo devuelve la información de aprovisionamiento de TPM. Este comando no toma parámetros. Devuelve un objeto que contiene dos propiedades:

  • Clave de aprobación
  • Id. de registro

Para obtener más información, use el comando Get-Help Get-EflowVmTpmProvisioningInfo -full.

Invoke-EflowVmCommand

El comando Invoke-EflowVMCommand ejecuta un comando de Linux dentro de la máquina virtual y devuelve la salida. Este comando solo funciona para los comandos de Linux que devuelven una salida finita. No se puede usar para los comandos de Linux que requieren interacción del usuario o que se ejecutan indefinidamente.

Los siguientes parámetros opcionales se pueden usar para especificar el comando de antemano.

Parámetro Valores aceptados Comentarios
comando String Comando que se va a ejecutar en la VM.
ignoreError Ninguno Si esta marca está presente, ignore los errores del comando.

Para obtener más información, use el comando Get-Help Invoke-EflowVmCommand -full.

Provision-EflowVm

El comando Provision-EflowVm agrega la información de aprovisionamiento del dispositivo IoT Edge al archivo config.yaml de IOT Edge de la máquina virtual.

Parámetro Valores aceptados Comentarios
provisioningType ManualConnectionString, ManualX509, DpsTPM, DpsX509 o DpsSymmetricKey Define el tipo de aprovisionamiento que quiere usar para el dispositivo IoT Edge.
devConnString Cadena de conexión de dispositivo de un dispositivo IoT Edge existente. Cadena de conexión de dispositivo para el aprovisionamiento manual de un dispositivo IoT Edge (ManualConnectionString).
iotHubHostname Nombre de host de un centro de IoT existente Nombre de host de Azure IoT Hub para el aprovisionamiento de un dispositivo IoT Edge (ManualX509).
deviceId Id. de dispositivo de un dispositivo IoT Edge existente Id. de dispositivo para el aprovisionamiento de un dispositivo IoT Edge (ManualX509).
scopeId Identificador de ámbito de una instancia de DPS existente. Identificador de ámbito para el aprovisionamiento de un dispositivo IoT Edge (DpsTPM, DpsX509 o DpsSymmetricKey).
symmKey Clave principal de una inscripción de DPS existente o clave principal de un dispositivo IoT Edge existente registrado mediante claves simétricas. Clave simétrica para el aprovisionamiento de un dispositivo IoT Edge (DpsSymmetricKey).
registrationId Identificador de registro de un dispositivo de IoT Edge existente. Identificador de registro para el aprovisionamiento de un dispositivo IoT Edge (DpsSymmetricKey, DpsTPM).
identityCertPath Ruta de acceso del directorio Ruta de acceso de destino absoluta del certificado de identidad en la máquina host Windows (ManualX509, DpsX509).
identityPrivKeyPath Ruta de acceso del directorio Ruta de acceso de origen absoluta de la clave privada de identidad en la máquina host Windows (ManualX509, DpsX509).
globalEndpoint URL del punto de conexión de dispositivo Dirección URL del punto de conexión global que se usará para el aprovisionamiento de DPS.

Para obtener más información, use el comando Get-Help Provision-EflowVm -full.

Remove-EflowNetwork

El comando Remove-EflowNetwork elimina una red conectada a la máquina virtual EFLOW. Este comando solo toma un parámetro.

Parámetro Valores aceptados Comentarios
vswitchName Nombre del conmutador virtual Nombre del conmutador virtual asignado a la VM EFLOW.

Para obtener más información, use el comando Get-Help Remove-EflowNetwork -full.

Remove-EflowVmEndpoint

El comando Remove-EflowVmEndpoint elimina un punto de conexión de red conectado a la máquina virtual EFLOW. Este comando solo toma un parámetro.

Parámetro Valores aceptados Comentarios
vendpointName Nombre del punto de conexión virtual Nombre del punto de conexión virtual asignado a la VM EFLOW.

Para obtener más información, use el comando Get-Help Remove-EflowVmEndpoint -full.

Remove-EflowVmSharedFolder

El comando Remove-EflowVmSharedFolder deja de compartir la carpeta del sistema operativo host de Windows en la máquina virtual EFLOW. Este comando toma dos parámetros.

Parámetro Valores aceptados Comentarios
sharedfolderRoot String Ruta de acceso a la carpeta raíz compartida del sistema operativo host de Windows.
hostFolderPath Cadena o lista Rutas de acceso relativas (a la carpeta raíz) a la carpeta compartida del sistema operativo host de Windows.

Para obtener más información, use el comando Get-Help Remove-EflowVmSharedFolder -full.

Set-EflowVM

El comando Set-EflowVM actualiza la configuración de la máquina virtual con las propiedades solicitadas. Use los parámetros opcionales para definir una configuración específica para la máquina virtual.

Parámetro Valores aceptados Comentarios
cpuCount Valor entero entre 1 y el número de núcleos de CPU del dispositivo Número de núcleos de CPU para la VM.
memoryInMB Valor entero entre 1024 y la cantidad máxima de memoria libre del dispositivo Memoria asignada para la VM.
gpuName Nombre de dispositivo GPU Nombre del dispositivo GPU que se va a usar para el tránsito.
gpuPassthroughType DirectDeviceAssignment, ParaVirtualization o ninguno (sin tránsito) Tipo de tránsito de GPU
gpuCount Valor entero entre 1 y los núcleos de GPU del dispositivo Número de dispositivos GPU para la VM Nota: Solo es válido cuando se usa DirectDeviceAssignment
headless Ninguno Si esta marca está presente, determina si se requiere la confirmación del usuario en caso de que se emita una advertencia de seguridad.

Para obtener más información, use el comando Get-Help Set-EflowVM -full.

Set-EflowVmDNSServers

El comando Set-EflowVmDNSServers configura los servidores DNS para la máquina virtual EFLOW.

Parámetro Valores aceptados Comentarios
vendpointName Valor de cadena del nombre del punto de conexión virtual Use Get-EflowVmEndpoint para obtener las interfaces virtuales asignadas a la máquina virtual de EFLOW. Por ejemplo, DESKTOP-CONTOSO-EflowInterface
dnsServers Lista de direcciones IP de servidores DNS que se van a utilizar para la resolución de nombres Por ejemplo, @("10.0.10.1")

Para obtener más información, use el comando Get-Help Set-EflowVmDNSServers -full.

Set-EflowVmFeature

El comando Set-EflowVmFeature habilita o deshabilita el estado de las características de IoT Edge para Linux en Windows.

Parámetro Valores aceptados Comentarios
feature DpsTpm, Defender Nombre de la característica que se va a alternar.
enable Ninguno Si esta marca está presente, el comando habilita la característica.

Para obtener más información, use el comando Get-Help Set-EflowVmFeature -full.

Set-EflowVmTelemetryOption

El comando Set-EflowVmTelemetryOption habilita o deshabilita la telemetría opcional dentro de la máquina virtual.

Parámetro Valores aceptados Comentarios
optionalTelemetry Verdadero o Falso Determina si la telemetría opcional está seleccionada.

Para obtener más información, use el comando Get-Help Set-EflowVmTelemetryOption -full.

Start-EflowVm

El comando Start-EflowVm inicia la máquina virtual. Si la máquina virtual ya está iniciada, no se lleva a cabo ninguna acción.

Para obtener más información, use el comando Get-Help Start-EflowVm -full.

Stop-EflowVm

El comando Stop-EflowVm detiene la máquina virtual. Si la máquina virtual ya está detenida, no se lleva a cabo ninguna acción.

Para obtener más información, use el comando Get-Help Stop-EflowVm -full.

Verify-EflowVm

El comando Verify-EflowVm es una función expuesta que comprueba si se ha creado la máquina virtual IoT Edge para Linux en Windows. Solo toma parámetros comunes. Devuelve true si se creó la máquina virtual y false en caso contrario.

Para obtener más información, use el comando Get-Help Verify-EflowVm -full.

Pasos siguientes

Obtenga información sobre cómo usar estos comandos para instalar y aprovisionar IoT Edge para Linux en Windows en el siguiente artículo: