Fonctions PowerShell pour IoT Edge pour Linux sur Windows

S’applique à :IoT Edge 1.4 checkmark IoT Edge 1.4

Important

IoT Edge 1.4 est la version prise en charge. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

Découvrez les fonctions PowerShell qui déploient, approvisionnent et obtiennent l’état de votre IoT Edge pour Linux sur une machine virtuelle Windows (EFLOW).

Prérequis

Les commandes décrites dans cet article proviennent du fichier AzureEFLOW.psm1, qui se trouve sur votre système dans votre répertoire WindowsPowerShell sous C:\Program Files\WindowsPowerShell\Modules\AzureEFLOW.

Si vous n’avez pas le dossier AzureEflow dans votre répertoire PowerShell, suivez les étapes ci-dessous pour télécharger et installer Azure IoT Edge pour Linux sur Windows :

  1. Dans une session PowerShell avec élévation de privilèges, exécutez chacune des commandes suivantes pour télécharger IoT Edge pour Linux sur 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. Installez IoT Edge pour Linux sur Windows sur votre appareil.

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

    Vous pouvez spécifier des répertoires d’installation et VHDX personnalisés en ajoutant les paramètres INSTALLDIR="<FULLY_QUALIFIED_PATH>" and VHDXDIR="<FULLY_QUALIFIED_PATH>"à la commande d’installation.

  3. Définissez la stratégie d’exécution sur l’appareil cible sur au moins AllSigned.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Add-EflowNetwork

La commande Add-EflowNetwork ajoute un nouveau réseau à la machine virtuelle EFLOW. Cette commande accepte deux paramètres.

Paramètre Valeurs acceptées Commentaires
vswitchName Nom du commutateur virtuel Nom du commutateur virtuel affecté à la machine virtuelle EFLOW.
vswitchType Interne ou externe Nom du commutateur virtuel affecté à la machine virtuelle EFLOW.

Elle retourne un objet qui contient quatre propriétés :

  • Nom
  • AllocationMethod
  • Cidr
  • Type

Pour plus d'informations, utilisez la commande Get-Help Add-EflowNetwork -full.

Add-EflowVmEndpoint

La commande Add-EflowVmEndpoint ajoute un nouveau point de terminaison réseau à la machine virtuelle EFLOW. Utilisez les paramètres facultatifs pour définir une adresse IP statique.

Paramètre Valeurs acceptées Commentaires
vswitchName Nom du commutateur virtuel Nom du commutateur virtuel affecté à la machine virtuelle EFLOW.
vendpointName Nom du point de terminaison virtuel Nom du point de terminaison virtuel affecté à la machine virtuelle EFLOW.
ip4Address Adresse IPv4 dans la plage de l’étendue du serveur DCHP Adresse IPv4 statique de la machine virtuelle EFLOW.
ip4PrefixLength Longueur du préfixe IPv4 du sous-réseau Longueur de préfixe de sous-réseau IPv4 uniquement valide lorsque l’adresse IPv4 statique est spécifiée.
ip4GatewayAddress Adresse IPv4 de la passerelle de sous-réseau Adresse IPv4 de la passerelle, valide uniquement lorsque l’adresse IPv4 statique est spécifiée.

Elle retourne un objet qui contient quatre propriétés :

  • Nom
  • MacAddress
  • HealthStatus
  • IpConfiguration

Pour plus d'informations, utilisez la commande Get-Help Add-EflowVmEndpoint -full.

Add-EflowVmSharedFolder

La commande Add-EflowVmSharedFolder permet de partager un ou plusieurs dossiers de système d’exploitation hôte Windows avec la machine virtuelle EFLOW.

Paramètre Valeurs acceptées Commentaires
sharedFoldersJsonPath String Chemin du fichier de configuration JSON Dossiers partagés.

Le fichier de configuration JSON doit présenter la structure suivante :

  • sharedFolderRoot : chemin du dossier racine Windows contenant tous les dossiers à partager avec la machine virtuelle EFLOW.
  • hostFolderPath : chemin relatif (vers le dossier racine parent) du dossier à partager avec la machine virtuelle EFLOW.
  • readOnly : définit si le dossier partagé est accessible en écriture ou en lecture seule sur la machine virtuelle EFLOW (valeurs : false et true).
  • targetFolderOnGuest : chemin du dossier à l’intérieur de la machine virtuelle EFLOW où le dossier du système d’exploitation hôte Windows est monté.
[
   {
      "sharedFolderRoot": "<shared-folder-root-windows-path>",
      "sharedFolders": [ 
        { "hostFolderPath": "<path-shared-folder>", 
            "readOnly": "<read-only>", 
            "targetFolderOnGuest": "<linux-mounting-point>" 
        }
      ]
   }
]

Pour plus d'informations, utilisez la commande Get-Help Add-EflowVmSharedFolder -full.

Connect-EflowVm

La commande Connect-EflowVm se connecte à la machine virtuelle via SSH. Le seul compte autorisé à accéder via SSH à la machine virtuelle est celui de l’utilisateur qui l’a créée.

Cette commande fonctionne uniquement sur une session PowerShell en cours d’exécution sur l’appareil hôte. Elle ne fonctionnera pas lors de l’utilisation du centre d’administration Windows ou de PowerShell ISE.

Pour plus d'informations, utilisez la commande Get-Help Connect-EflowVm -full.

Copy-EflowVmFile

La commande Copy-EflowVmFile copie le fichier vers ou à partir de la machine virtuelle à l’aide de SCP. Utilisez les paramètres facultatifs pour spécifier les chemins d’accès aux fichiers source et de destination, ainsi que la direction de la copie.

L’utilisateur iotedge-user doit disposer de l’autorisation de lecture sur tous les répertoires d’origine ou d’une autorisation d’écriture sur les répertoires de destination de l’ordinateur virtuel.

Paramètre Valeurs acceptées Commentaires
fromFile Chaîne représentant le chemin d’accès au fichier Définit le fichier à partir duquel effectuer la lecture.
toFile Chaîne représentant le chemin d’accès au fichier Définit le fichier dans lequel écrire.
pushFile Aucun Cet indicateur indique la direction de la copie. Si présent, la commande transmet le fichier à la machine virtuelle. Si absent, la commande extrait le fichier à partir de la machine virtuelle.

Pour plus d'informations, utilisez la commande Get-Help Copy-EflowVMFile -full.

Deploy-Eflow

La commande Deploy-Eflow est la principale méthode de déploiement. La commande de déploiement crée la machine virtuelle, approvisionne des fichiers et déploie le module d’agent IoT Edge. Bien qu’aucun des paramètres ne soit obligatoire, ils peuvent être utilisés pour modifier les paramètres de la machine virtuelle pendant sa création.

Paramètre Valeurs acceptées Commentaires
acceptEula Oui ou Non Raccourci pour accepter/refuser le CLUF et contourner l’invite du CLUF.
acceptOptionalTelemetry Oui ou Non Raccourci permettant d’accepter/de refuser la télémétrie facultative et de contourner l’invite de télémétrie.
cpuCount Valeur entière comprise entre 1 et les cœurs d’UC de l’appareil Nombre de cœurs de processeur pour la machine virtuelle.

Valeur par défaut: 1 vCore.
memoryInMB Valeur entière paire comprise entre 1024 et la quantité maximale de mémoire disponible de l’appareil Mémoire allouée pour la machine virtuelle.

DValeur par défaut  : 1 024 Mo.
vmDiskSize Entre 21 Go et 2 To Taille de disque logique maximale du disque dur virtuel de taille dynamique.

Valeur par défaut : 29 Go.

Remarque : Vous pouvez utiliser vmDiskSize ou vmDataSize, mais pas les deux à la fois.
vmDataSize Entre 2 Go et 2 To Taille maximale de la partition de données du disque dur résultant, en Go.

Valeur par défaut : 10 Go.

Remarque : Vous pouvez utiliser vmDiskSize ou vmDataSize, mais pas les deux à la fois.
vmLogSize Small ou Large Précisez la taille de la partition du journal. Small = 1 Go, Large = 6 Go.

Valeur par défaut : Small.
vswitchName Nom du commutateur virtuel Nom du commutateur virtuel affecté à la machine virtuelle EFLOW.
vswitchType Interne ou externe Nom du commutateur virtuel affecté à la machine virtuelle EFLOW.
ip4Address Adresse IPv4 dans la plage de l’étendue du serveur DCHP Adresse IPv4 statique de la machine virtuelle EFLOW.
ip4PrefixLength Longueur du préfixe IPv4 du sous-réseau Longueur de préfixe de sous-réseau IPv4 uniquement valide lorsque l’adresse IPv4 statique est spécifiée.
ip4GatewayAddress Adresse IPv4 de la passerelle de sous-réseau Adresse IPv4 de la passerelle, valide uniquement lorsque l’adresse IPv4 statique est spécifiée.
gpuName Nom du Périphérique GPU Nom du périphérique GPU à utiliser pour le relais.
gpuPassthroughType DirectDeviceAssignment, ParaVirtualization, ou aucun (CPU uniquement) Type de relais GPU
gpuCount Valeur entière comprise entre 1 et le nombre de cœurs GPU de l’appareil Nombre de périphériques GPU pour la machine virtuelle.

Remarque : Si vous utilisez Paravirtualization, veillez à définir gpuCount = 1
customSsh Aucun Détermine si l’utilisateur veut utiliser son installation OpenSSH.Client personnalisée. Si ce paramètre est présent, ssh.exe doit être disponible pour EFLOW PSM.
sharedFoldersJsonPath String Chemin du fichier de configuration JSON Dossiers partagés.

Pour plus d'informations, utilisez la commande Get-Help Deploy-Eflow -full.

Get-EflowHostConfiguration

La commande Get-EflowHostConfiguration renvoie la configuration de l’hôte. Cette commande n’accepte aucun paramètre. Elle retourne un objet qui contient quatre propriétés :

  • FreePhysicalMemoryInMB
  • NumberOfLogicalProcessors
  • DiskInfo
  • GpuInfo

Pour plus d'informations, utilisez la commande Get-Help Get-EflowHostConfiguration -full.

Get-EflowLogs

La commande Get-EflowLogs collecte et regroupe les journaux et les packs ed’IoT Edge pour le déploiement et l’installation de Linux sur Windows. Elle génère les journaux regroupés sous la forme d’un dossier .zip.

Pour plus d'informations, utilisez la commande Get-Help Get-EflowLogs -full.

Get-EflowNetwork

La commande Get-EflowNetwork renvoie une liste des réseaux affectés à la machine virtuelle EFLOW. Utilisez le paramètre facultatif pour obtenir un réseau spécifique.

Paramètre Valeurs acceptées Commentaires
vswitchName Nom du commutateur virtuel Nom du commutateur virtuel affecté à la machine virtuelle EFLOW.

La commande retourne une liste d’objets qui contient quatre propriétés :

  • Nom
  • AllocationMethod
  • Cidr
  • Type

Pour plus d'informations, utilisez la commande Get-Help Get-EflowNetwork -full.

Get-EflowVm

La commande Get-EflowVmrenvoie la configuration actuelle de la machine virtuelle. Cette commande n’accepte aucun paramètre. Elle retourne un objet qui contient quatre propriétés :

  • VmConfiguration
  • VmPowerState
  • EdgeRuntimeVersion
  • EdgeRuntimeStatus
  • SystemStatistics

Pour afficher une propriété spécifique dans une liste lisible, exécutez la commande Get-EflowVM avec la propriété développée. Par exemple :

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

Pour plus d'informations, utilisez la commande Get-Help Get-EflowVm -full.

Get-EflowVmAddr

La commande Get-EflowVmAddr est utilisée pour interroger les adresses IP et Mac de la machine virtuelle. Cette commande existe afin de tenir compte du fait que les adresses IP et Mac peuvent changer dans le temps.

Pour toute information supplémentaire, utilisez la commande Get-Help Get-EflowVmAddr -full.

Get-EflowVmEndpoint

La commande EflowVmEndpoint renvoie une liste des points de terminaison réseau affectés à la machine virtuelle EFLOW. Utilisez le paramètre facultatif pour obtenir un point de terminaison réseau spécifique.

Paramètre Valeurs acceptées Commentaires
vswitchName Nom du commutateur virtuel Nom du commutateur virtuel affecté à la machine virtuelle EFLOW.

La commande retourne une liste d’objets qui contient quatre propriétés :

  • Nom
  • MacAddress
  • HealthStatus
  • IpConfiguration

Pour plus d'informations, utilisez la commande Get-Help Get-EflowVmEndpoint -full.

Get-EflowVmFeature

La commande Get-EflowVmFeature renvoie l’état de l’activation d’IoT Edge pour les fonctionnalités Linux sur Windows.

Paramètre Valeurs acceptées Commentaires
feature DpsTpm Nom de la fonctionnalité à interroger.

Pour plus d'informations, utilisez la commande Get-Help Get-EflowVmFeature -full.

Get-EflowVmName

La commande Get-EflowVmName renvoie le nom d’hôte actuel de la machine virtuelle. Cette commande permet de tenir compte du fait que le nom d’hôte Windows peut changer dans le temps.

Pour plus d'informations, utilisez la commande Get-Help Get-EflowVmName -full.

Get-EflowVmSharedFolder

La commande Get-EflowVmSharedFolder retourne les informations relatives à un ou plusieurs dossiers de système d’exploitation hôte Windows partagés avec la machine virtuelle EFLOW.

Paramètre Valeurs acceptées Commentaires
sharedFolderRoot String Chemin du dossier racine partagé du système d’exploitation hôte Windows.
hostFolderPath Chaîne ou liste Chemin(s) relatif(s) (vers le dossier racine) du ou des dossiers partagés du système d’exploitation hôte Windows.

La commande retourne une liste d’objets qui contient trois propriétés :

  • hostFolderPath : chemin relatif (vers le dossier racine parent) du dossier partagé avec la machine virtuelle EFLOW.
  • readOnly : définit si le dossier partagé est accessible en écriture ou en lecture seule sur la machine virtuelle EFLOW (valeurs : false et true).
  • targetFolderOnGuest : chemin du dossier à l’intérieur de la machine virtuelle EFLOW où le dossier Windows est monté.

Pour plus d'informations, utilisez la commande Get-Help Get-EflowVmSharedFolder -full.

Get-EflowVmTelemetryOption

La commande Get-EflowVmTelemetryOption affiche l’état de la télémétrie (soitFacultatif soit Requis) au sein de la machine virtuelle.

Pour plus d'informations, utilisez la commande Get-Help Get-EflowVmTelemetryOption -full.

Get-EflowVmTpmProvisioningInfo

La commande Get-EflowVmTpmProvisioningInfo renvoie les informations d’approvisionnement du Module de plateforme sécurisée (TPM). Cette commande n’accepte aucun paramètre. Elle retourne un objet qui contient quatre propriétés :

  • EK (Endorsement Key)
  • ID d’enregistrement

Pour plus d'informations, utilisez la commande Get-Help Get-EflowVmTpmProvisioningInfo -full.

Invoke-EflowVmCommand

La commande Invoke-EflowVMCommand exécute une commande Linux dans la machine virtuelle et renvoie le résultat. Cette commande fonctionne uniquement pour les commandes Linux qui retournent une sortie finie. Elle ne peut pas être utilisée pour les commandes Linux qui nécessitent une interaction de l’utilisateur ou qui s’exécutent indéfiniment.

Les paramètres facultatifs suivants peuvent être utilisés pour spécifier la commande à l’avance.

Paramètre Valeurs acceptées Commentaires
commande String Commande à exécuter sur la machine virtuelle.
ignoreError Aucun Si cet indicateur est présent, ignorez les erreurs de la commande.

Pour plus d'informations, utilisez la commande Get-Help Invoke-EflowVmCommand -full.

Provision-EflowVm

La commande Provision-EflowVm ajoute les informations d’approvisionnement de votre appareil IoT Edge au fichier config.yaml IoT Edge de la machine virtuelle.

Paramètre Valeurs acceptées Commentaires
provisioningType ManualConnectionString, ManualX509, DpsTPM, DpsX509 ou DpsSymmetricKey Définit le type d’approvisionnement que vous souhaitez utiliser pour votre appareil IoT Edge.
devConnString Chaîne de connexion d’un appareil IoT Edge existant Chaîne de connexion d’appareil pour l’approvisionnement manuel d’un appareil IoT Edge (ManualConnectionString).
iotHubHostname Nom d’hôte d’un IoT hub existant Nom d’hôte Azure IoT Hub pour l’approvisionnement d’un appareil IoT Edge (ManualX509).
deviceId ID d’appareil d’un appareil IoT Edge existant ID d’appareil pour l’approvisionnement d’un appareil IoT Edge (ManualX509).
scopeId ID d’étendue pour une instance DPS existante. ID d’étendue pour l’approvisionnement d’un appareil IoT Edge (DpsTPM, DpsX509, ou DpsSymmetricKey).
symmKey Clé primaire pour une inscription DPS existante ou clé primaire d’un appareil IoT Edge existant inscrit à l’aide de clés symétriques Clé symétrique pour l’approvisionnement d’un appareil IoT Edge (DpsSymmetricKey).
registrationId ID d’inscription d’un appareil IoT Edge existant ID d’inscription pour le provisionnement d’un appareil IoT Edge (DpsSymmetricKey, DpsTPM).
identityCertPath Chemin du répertoire Chemin d’accès de la destination absolue du certificat d’identité sur votre machine hôte Windows (ManualX509, DpsX509).
identityPrivKeyPath Chemin du répertoire Chemin d’accès de la destination absolue de la clé privée d’identité sur votre machine hôte Windows (ManualX509, DpsX509).
globalEndpoint URL du point de terminaison de l’appareil URL du point de terminaison global à utiliser pour le provisionnement DPS.

Pour plus d'informations, utilisez la commande Get-Help Provision-EflowVm -full.

Remove-EflowNetwork

La commande Remove-EflowNetwork supprime un réseau existant attaché à la machine virtuelle EFLOW. Cette commande accepte un seul paramètre.

Paramètre Valeurs acceptées Commentaires
vswitchName Nom du commutateur virtuel Nom du commutateur virtuel affecté à la machine virtuelle EFLOW.

Pour plus d'informations, utilisez la commande Get-Help Remove-EflowNetwork -full.

Remove-EflowVmEndpoint

La commande Remove-EflowNetwork supprime un réseau existant attaché à la machine virtuelle EFLOW. Cette commande accepte un seul paramètre.

Paramètre Valeurs acceptées Commentaires
vendpointName Nom du point de terminaison virtuel Nom du point de terminaison virtuel affecté à la machine virtuelle EFLOW.

Pour plus d'informations, utilisez la commande Get-Help Remove-EflowVmEndpoint -full.

Remove-EflowVmSharedFolder

La commande Remove-EflowVmSharedFolder arrête le partage du dossier du système d’exploitation hôte Windows avec la machine virtuelle EFLOW. Cette commande accepte deux paramètres.

Paramètre Valeurs acceptées Commentaires
sharedFolderRoot String Chemin du dossier racine partagé du système d’exploitation hôte Windows.
hostFolderPath Chaîne ou liste Chemin(s) relatif(s) (vers le dossier racine) du ou des dossiers partagés du système d’exploitation hôte Windows.

Pour plus d'informations, utilisez la commande Get-Help Remove-EflowVmSharedFolder -full.

Set-EflowVM

La commande Set-EflowVM actualise la configuration de la machine virtuelle avec les propriétés requises. Utilisez les paramètres facultatifs pour définir une configuration spécifique pour la machine virtuelle.

Paramètre Valeurs acceptées Commentaires
cpuCount Valeur entière comprise entre 1 et les cœurs d’UC de l’appareil Nombre de cœurs de processeur pour la machine virtuelle.
memoryInMB Valeur entière comprise entre 1 024 et la quantité maximale de mémoire disponible de l’appareil Mémoire allouée pour la machine virtuelle.
gpuName Nom du Périphérique GPU Nom du périphérique GPU à utiliser pour le relais.
gpuPassthroughType DirectDeviceAssignment, ParaVirtualization, ou aucun (pas de relais) Type de relais GPU
gpuCount Valeur entière comprise entre 1 et les cœurs GPU de l’appareil Nombre d’appareils GPU pour la machine virtuelle. Remarque : uniquement valide en cas d’utilisation de DirectDeviceAssignment
sans affichage Aucun Si cet indicateur est présent, il détermine si l’utilisateur doit confirmer en cas d’émission d’un avertissement de sécurité.

Pour plus d'informations, utilisez la commande Get-Help Set-EflowVM -full.

Set-EflowVmDNSServers

La commande Set-EflowVmDNSServers configure les serveurs DNS de la machine virtuelle EFLOW.

Paramètre Valeurs acceptées Commentaires
vendpointName Valeur de type chaîne du nom du point de terminaison virtuel Utilisez la commande Get-EflowVmEndpoint pour obtenir les interfaces virtuelles attribuées à la machine virtuelle EFLOW. Par exemple : DESKTOP-CONTOSO-EflowInterface
dnsServers Liste des adresses IP des serveurs DNS à utiliser pour la résolution de noms Par exemple : @("10.0.10.1")

Pour plus d'informations, utilisez la commande Get-Help Set-EflowVmDNSServers -full.

Set-EflowVmFeature

La commande Set-EflowVmFeature active ou désactive l’état d’IoT Edge pour les fonctionnalités Linux sur Windows.

Paramètre Valeurs acceptées Commentaires
feature DpsTpm, Defender Nom de la fonctionnalité à activer/désactiver.
enable Aucun Si cet indicateur est présent, la commande active la fonctionnalité.

Pour plus d'informations, utilisez la commande Get-Help Set-EflowVmFeature -full.

Set-EflowVmTelemetryOption

La commande Set-EflowVmTelemetryOption active ou désactive la télémétrie facultative au sein de la machine virtuelle.

Paramètre Valeurs acceptées Commentaires
optionalTelemetry Vrai ou Faux Si la télémétrie facultative est sélectionnée.

Pour plus d'informations, utilisez la commande Get-Help Set-EflowVmTelemetryOption -full.

Start-EflowVm

La commande Start-EflowVm démarre la machine virtuelle. Si la machine virtuelle est déjà démarrée, aucune action n’est effectuée.

Pour plus d'informations, utilisez la commande Get-Help Start-EflowVm -full.

Stop-EflowVm

La commande Stop-EflowVm arrête la machine virtuelle. Si la machine virtuelle est déjà arrêtée, aucune action n’est effectuée.

Pour plus d'informations, utilisez la commande Get-Help Stop-EflowVm -full.

Verify-EflowVm

La commande Verify-EflowVm est une fonction exposée pour vérifier si la machine virtuelle IoT Edge pour Linux sur Windows a été créée. Elle accepte uniquement des paramètres communs et retourne la valeur True si la machine virtuelle a été créée et False dans le cas contraire.

Pour plus d'informations, utilisez la commande Get-Help Verify-EflowVm -full.

Étapes suivantes

Découvrez comment utiliser ces commandes pour installer et configurer IoT Edge pour Linux sur Windows dans l’article suivant :