Funzioni di PowerShell per IoT Edge per Linux in Windows

Si applica a: Segno di spunta IoT Edge 1.4 IoT Edge 1.4

Importante

Azure IoT Edge 1.5 LTS e IoT Edge 1.4 sono versioni supportate. IoT Edge 1.4 LTS sta raggiungendo la fine del servizio il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Comprendere le funzioni di PowerShell che distribuiscono, effettuano il provisioning e ottengono lo stato della macchina virtuale IoT Edge per Linux in Windows (EFLOW).

Prerequisiti

I comandi descritti in questo articolo provengono dal AzureEFLOW.psm1 file , disponibile nel sistema nella directory in WindowsPowerShell C:\Program Files\WindowsPowerShell\Modules\AzureEFLOW.

Se la cartella AzureEflow non è disponibile nella directory di PowerShell, seguire questa procedura per scaricare e installare Azure IoT Edge per Linux in Windows:

  1. In una sessione di PowerShell con privilegi elevati, eseguire ognuno dei comandi seguenti per scaricare IoT Edge per Linux in 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. Installare IoT Edge per Linux in Windows nel dispositivo.

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

    È possibile specificare directory di installazione e VHDX personalizzate aggiungendo INSTALLDIR="<FULLY_QUALIFIED_PATH>" parametri e VHDXDIR="<FULLY_QUALIFIED_PATH>" al comando di installazione.

  3. Impostare i criteri di esecuzione nel dispositivo di destinazione su almeno AllSigned.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Add-EflowNetwork

Il comando Add-EflowNetwork aggiunge una nuova rete alla macchina virtuale EFLOW. Questo comando accetta due parametri.

Parametro Valori accettati Commenti
vswitchName Nome del commutatore virtuale Nome del commutatore virtuale assegnato alla macchina virtuale EFLOW.
vswitchType Interno o Esterno Tipo del commutatore virtuale assegnato alla macchina virtuale EFLOW.

Restituisce un oggetto che contiene quattro proprietà:

  • Nome
  • AllocationMethod
  • Cidr
  • Type

Per altre informazioni, usare il comando Get-Help Add-EflowNetwork -full.

Add-EflowVmEndpoint

Il comando Add-EflowVmEndpoint aggiunge un nuovo endpoint di rete alla macchina virtuale EFLOW. Usare i parametri facoltativi per impostare un indirizzo IP statico.

Parametro Valori accettati Commenti
vswitchName Nome del commutatore virtuale Nome del commutatore virtuale assegnato alla macchina virtuale EFLOW.
vendpointName Nome dell'endpoint virtuale Nome dell'endpoint virtuale assegnato alla macchina virtuale EFLOW.
ip4Address Indirizzo IPv4 nell'intervallo dell'ambito del server DCHP Indirizzo Ipv4 statico della macchina virtuale EFLOW.
ip4PrefixLength Lunghezza prefisso IPv4 della subnet Lunghezza del prefisso della subnet Ipv4 valida solo quando viene specificato l'indirizzo Ipv4 statico.
ip4GatewayAddress Indirizzo IPv4 del gateway subnet Indirizzo Ipv4 del gateway valido solo quando viene specificato l'indirizzo Ipv4 statico.

Restituisce un oggetto che contiene quattro proprietà:

  • Nome
  • MacAddress
  • HealthStatus
  • IpConfiguration

Per altre informazioni, usare il comando Get-Help Add-EflowVmEndpoint -full.

Add-EflowVmSharedFolder

Il comando Add-EflowVmSharedFolder consente di condividere una o più cartelle del sistema operativo host Windows con la macchina virtuale EFLOW.

Parametro Valori accettati Commenti
sharedFoldersJsonPath String Percorso del file di configurazione JSON delle cartelle condivise.

Il file di configurazione JSON deve avere la struttura seguente:

  • sharedFOlderRoot : percorso della cartella radice di Windows contenente tutte le cartelle da condividere con la macchina virtuale EFLOW.
  • hostFolderPath: percorso relativo (alla cartella radice padre) della cartella da condividere con la macchina virtuale EFLOW.
  • readOnly: definisce se la cartella condivisa è scrivibile o di sola lettura dalla macchina virtuale EFLOW - Valori: false o true.
  • targetFolderOnGuest : percorso della cartella all'interno della macchina virtuale EFLOW in cui è montata la cartella del sistema operativo host Windows.
[
   {
      "sharedFolderRoot": "<shared-folder-root-windows-path>",
      "sharedFolders": [ 
        { "hostFolderPath": "<path-shared-folder>", 
            "readOnly": "<read-only>", 
            "targetFolderOnGuest": "<linux-mounting-point>" 
        }
      ]
   }
]

Per altre informazioni, usare il comando Get-Help Add-EflowVmSharedFolder -full.

Connect-EflowVm

Il comando Connect-EflowVm si connette alla macchina virtuale tramite SSH. L'unico account autorizzato a connettersi tramite SSH alla macchina virtuale è quello dell'utente che lo ha creato.

Questo comando funziona solo in una sessione di PowerShell in esecuzione nel dispositivo host. Non funzionerà quando si usa Windows Admin Center o PowerShell ISE.

Per altre informazioni, usare il comando Get-Help Connect-EflowVm -full.

Copy-EflowVmFile

Il comando Copy-EflowVmFile copia il file da o verso la macchina virtuale usando SCP. Usare i parametri facoltativi per specificare i percorsi dei file di origine e di destinazione e la direzione della copia.

L'utente iotedge-user deve disporre dell'autorizzazione di lettura per qualsiasi directory di origine o autorizzazione di scrittura per qualsiasi directory di destinazione nella macchina virtuale.

Parametro Valori accettati Commenti
fromFile Stringa che rappresenta il percorso del file Definisce il file da cui leggere.
toFile Stringa che rappresenta il percorso del file Definisce il file in cui scrivere.
pushFile None Questo flag indica la direzione di copia. Se presente, il comando esegue il push del file nella macchina virtuale. Se assente, il comando esegue il pull del file dalla macchina virtuale.

Per altre informazioni, usare il comando Get-Help Copy-EflowVMFile -full.

Deploy-Eflow

Il comando Deploy-Eflow è il metodo di distribuzione principale. Il comando di distribuzione crea la macchina virtuale, effettua il provisioning dei file e distribuisce il modulo dell'agente IoT Edge. Anche se nessuno dei parametri è obbligatorio, può essere usato per modificare le impostazioni per la macchina virtuale durante la creazione.

Parametro Valori accettati Commenti
acceptEula o No Collegamento per accettare/negare il contratto di licenza e ignorare il prompt del contratto di licenza.
acceptOptionalTelemetry o No Collegamento per accettare/negare i dati di telemetria facoltativi e ignorare il prompt dei dati di telemetria.
cpuCount Valore intero compreso tra 1 e i core CPU del dispositivo Numero di core CPU per la macchina virtuale.

Valore predefinito: 1 vCore.
memoryInMB Valore pari intero compreso tra 1024 e la quantità massima di memoria libera del dispositivo Memoria allocata per la macchina virtuale.

Valore predefinito: 1024 MB.
vmDiskSize Tra 21 GB e 2 TB Dimensioni massime del disco logico del disco rigido virtuale in espansione dinamica.

Valore predefinito: 29 GB.

Nota: è possibile usare vmDiskSize o vmDataSize , ma non entrambi insieme.
vmDataSize Tra 2 GB e 2 TB Dimensioni massime della partizione dati del disco rigido risultante, in GB.

Valore predefinito: 10 GB.

Nota: è possibile usare vmDiskSize o vmDataSize , ma non entrambi insieme.
vmLogSize Piccolo o grande Specificare le dimensioni della partizione di log. Small = 1GB, Large = 6GB.

Valore predefinito: Small.
vswitchName Nome del commutatore virtuale Nome del commutatore virtuale assegnato alla macchina virtuale EFLOW.
vswitchType Interno o Esterno Tipo del commutatore virtuale assegnato alla macchina virtuale EFLOW.
ip4Address Indirizzo IPv4 nell'intervallo dell'ambito del server DCHP Indirizzo Ipv4 statico della macchina virtuale EFLOW.
ip4PrefixLength Lunghezza prefisso IPv4 della subnet Lunghezza del prefisso della subnet Ipv4 valida solo quando viene specificato l'indirizzo Ipv4 statico.
ip4GatewayAddress Indirizzo IPv4 del gateway subnet Indirizzo Ipv4 del gateway valido solo quando viene specificato l'indirizzo Ipv4 statico.
gpuName Nome dispositivo GPU Nome del dispositivo GPU da usare per il pass-through.
gpuPassthroughType DirectDeviceAssignment, ParaVirtualization o nessuno (solo CPU) Tipo pass-through GPU
gpuCount Valore intero compreso tra 1 e il numero di core GPU del dispositivo Numero di dispositivi GPU per la macchina virtuale.

Nota: se si usa ParaVirtualization, assicurarsi di impostare gpuCount = 1
customSsh None Determina se l'utente vuole usare l'installazione personalizzata di OpenSSH.Client. Se presente, ssh.exe deve essere disponibile per EFLOW PSM
sharedFoldersJsonPath String Percorso del file di configurazione JSON delle cartelle condivise.

Per altre informazioni, usare il comando Get-Help Deploy-Eflow -full.

Get-EflowHostConfiguration

Il comando Get-EflowHostConfiguration restituisce la configurazione host. Questo comando non accetta parametri. Restituisce un oggetto che contiene quattro proprietà:

  • FreePhysicalMemoryInMB
  • NumberOfLogicalProcessors
  • DiskInfo
  • GpuInfo

Per altre informazioni, usare il comando Get-Help Get-EflowHostConfiguration -full.

Get-EflowLogs

Il comando Get-EflowLogs raccoglie e aggrega i log da IoT Edge per Linux nella distribuzione e nell'installazione di Windows. Restituisce i log in bundle sotto forma di .zip cartella.

Per altre informazioni, usare il comando Get-Help Get-EflowLogs -full.

Get-EflowNetwork

Il comando Get-EflowNetwork restituisce un elenco delle reti assegnate alla macchina virtuale EFLOW. Usare il parametro facoltativo per ottenere una rete specifica.

Parametro Valori accettati Commenti
vswitchName Nome del commutatore virtuale Nome del commutatore virtuale assegnato alla macchina virtuale EFLOW.

Restituisce un elenco di oggetti che contiene quattro proprietà:

  • Nome
  • AllocationMethod
  • Cidr
  • Type

Per altre informazioni, usare il comando Get-Help Get-EflowNetwork -full.

Get-EflowVm

Il comando Get-EflowVm restituisce la configurazione corrente della macchina virtuale. Questo comando non accetta parametri. Restituisce un oggetto che contiene quattro proprietà:

  • VmConfiguration
  • VmPowerState
  • EdgeRuntimeVersion
  • EdgeRuntimeStatus
  • SystemStatistics

Per visualizzare una proprietà specifica in un elenco leggibile, eseguire il Get-EflowVM comando con la proprietà espansa. Ad esempio:

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

Per altre informazioni, usare il comando Get-Help Get-EflowVm -full.

Get-EflowVmAddr

Il comando Get-EflowVmAddr viene usato per eseguire query sull'indirizzo IP e MAC corrente della macchina virtuale. Questo comando esiste per tenere conto del fatto che l'indirizzo IP e MAC possono cambiare nel tempo.

Per altre informazioni, usare il comando Get-Help Get-EflowVmAddr -full.

Get-EflowVmEndpoint

Il comando Get-EflowVmEndpoint restituisce un elenco degli endpoint di rete assegnati alla macchina virtuale EFLOW. Usare il parametro facoltativo per ottenere un endpoint di rete specifico.

Parametro Valori accettati Commenti
vswitchName Nome del commutatore virtuale Nome del commutatore virtuale assegnato alla macchina virtuale EFLOW.

Restituisce un elenco di oggetti che contiene quattro proprietà:

  • Nome
  • MacAddress
  • HealthStatus
  • IpConfiguration

Per altre informazioni, usare il comando Get-Help Get-EflowVmEndpoint -full.

Get-EflowVmFeature

Il comando Get-EflowVmFeature restituisce lo stato dell'abilitazione delle funzionalità di IoT Edge per Linux in Windows.

Parametro Valori accettati Commenti
funzionalità DpsTpm Nome della funzionalità su cui eseguire la query.

Per altre informazioni, usare il comando Get-Help Get-EflowVmFeature -full.

Get-EflowVmName

Il comando Get-EflowVmName restituisce il nome host corrente della macchina virtuale. Questo comando esiste per tenere conto del fatto che il nome host di Windows può cambiare nel tempo.

Per altre informazioni, usare il comando Get-Help Get-EflowVmName -full.

Get-EflowVmSharedFolder

Il comando Get-EflowVmSharedFolder restituisce le informazioni su una o più cartelle del sistema operativo host Windows condivise con la macchina virtuale EFLOW.

Parametro Valori accettati Commenti
sharedfolderRoot String Percorso della cartella radice condivisa del sistema operativo host Windows.
hostFolderPath Stringa o elenco Percorso relativo/percorsi (alla cartella radice) alla cartella condivisa del sistema operativo host Windows/s.

Restituisce un elenco di oggetti che contiene tre proprietà:

  • hostFolderPath: percorso relativo (alla cartella radice padre) della cartella condivisa con la macchina virtuale EFLOW.
  • readOnly: definisce se la cartella condivisa è scrivibile o di sola lettura dalla macchina virtuale EFLOW - Valori: false o true.
  • targetFolderOnGuest: percorso della cartella all'interno della macchina virtuale EFLOW in cui è montata la cartella Windows.

Per altre informazioni, usare il comando Get-Help Get-EflowVmSharedFolder -full.

Get-EflowVmTelemetryOption

Il comando Get-EflowVmTelemetryOption visualizza lo stato dei dati di telemetria ( facoltativo o obbligatorio) all'interno della macchina virtuale.

Per altre informazioni, usare il comando Get-Help Get-EflowVmTelemetryOption -full.

Get-EflowVmTpmProvisioningInfo

Il comando Get-EflowVmTpmProvisioningInfo restituisce le informazioni di provisioning TPM. Questo comando non accetta parametri. Restituisce un oggetto che contiene due proprietà:

  • Chiave di verifica dell'autenticità
  • ID registrazione

Per altre informazioni, usare il comando Get-Help Get-EflowVmTpmProvisioningInfo -full.

Invoke-EflowVmCommand

Il comando Invoke-EflowVMCommand esegue un comando Linux all'interno della macchina virtuale e restituisce l'output. Questo comando funziona solo per i comandi Linux che restituiscono un output finito. Non può essere usato per i comandi Linux che richiedono l'interazione dell'utente o che vengono eseguiti a tempo indeterminato.

I parametri facoltativi seguenti possono essere usati per specificare il comando in anticipo.

Parametro Valori accettati Commenti
Comando String Comando da eseguire nella macchina virtuale.
ignoreError None Se questo flag è presente, ignorare gli errori del comando .

Per altre informazioni, usare il comando Get-Help Invoke-EflowVmCommand -full.

Provision-EflowVm

Il comando Provision-EflowVm aggiunge le informazioni di provisioning per il dispositivo IoT Edge al file IoT Edge config.yaml della macchina virtuale.

Parametro Valori accettati Commenti
provisioningType ManualConnectionString, ManualX509, DpsTPM, DpsX509 o DpsSymmetricKey Definisce il tipo di provisioning che si vuole usare per il dispositivo IoT Edge.
devConnString Il dispositivo stringa di connessione di un dispositivo IoT Edge esistente Device stringa di connessione per il provisioning manuale di un dispositivo IoT Edge (ManualConnectionString).
iotHubHostname Nome host di un hub IoT esistente hub IoT di Azure nome host per il provisioning di un dispositivo IoT Edge (ManualX509).
deviceId ID dispositivo di un dispositivo IoT Edge esistente ID dispositivo per il provisioning di un dispositivo IoT Edge (ManualX509).
scopeId ID ambito per un'istanza del servizio Device Provisioning esistente. ID ambito per il provisioning di un dispositivo IoT Edge (DpsTPM, DpsX509 o DpsSymmetricKey).
symmKey Chiave primaria per una registrazione DPS esistente o la chiave primaria di un dispositivo IoT Edge esistente registrato usando chiavi simmetriche Chiave simmetrica per il provisioning di un dispositivo IoT Edge (DpsSymmetricKey).
registrationId ID di registrazione di un dispositivo IoT Edge esistente ID registrazione per il provisioning di un dispositivo IoT Edge (DpsSymmetricKey, DpsTPM).
identityCertPath Percorso directory Percorso di destinazione assoluto del certificato di identità nel computer host Windows (ManualeX509, DpsX509).
identityPrivKeyPath Percorso directory Percorso di origine assoluto della chiave privata di identità nel computer host Windows (ManualX509, DpsX509).
globalEndpoint URL endpoint dispositivo URL dell'endpoint globale da usare per il provisioning del servizio Device Provisioning.

Per altre informazioni, usare il comando Get-Help Provision-EflowVm -full.

Remove-EflowNetwork

Il comando Remove-EflowNetwork rimuove una rete esistente collegata alla macchina virtuale EFLOW. Questo comando accetta un parametro.

Parametro Valori accettati Commenti
vswitchName Nome del commutatore virtuale Nome del commutatore virtuale assegnato alla macchina virtuale EFLOW.

Per altre informazioni, usare il comando Get-Help Remove-EflowNetwork -full.

Remove-EflowVmEndpoint

Il comando Remove-EflowVmEndpoint rimuove un endpoint di rete esistente collegato alla macchina virtuale EFLOW. Questo comando accetta un parametro.

Parametro Valori accettati Commenti
vendpointName Nome dell'endpoint virtuale Nome dell'endpoint virtuale assegnato alla macchina virtuale EFLOW.

Per altre informazioni, usare il comando Get-Help Remove-EflowVmEndpoint -full.

Remove-EflowVmSharedFolder

Il comando Remove-EflowVmSharedFolder interrompe la condivisione della cartella del sistema operativo host Windows nella macchina virtuale EFLOW. Questo comando accetta due parametri.

Parametro Valori accettati Commenti
sharedfolderRoot String Percorso della cartella radice condivisa del sistema operativo host Windows.
hostFolderPath Stringa o elenco Percorso relativo/percorsi (alla cartella radice) alla cartella condivisa del sistema operativo host Windows/s.

Per altre informazioni, usare il comando Get-Help Remove-EflowVmSharedFolder -full.

Set-EflowVM

Il comando Set-EflowVM aggiorna la configurazione della macchina virtuale con le proprietà richieste. Usare i parametri facoltativi per definire una configurazione specifica per la macchina virtuale.

Parametro Valori accettati Commenti
cpuCount Valore intero compreso tra 1 e i core CPU del dispositivo Numero di core CPU per la macchina virtuale.
memoryInMB Valore intero compreso tra 1024 e la quantità massima di memoria libera del dispositivo Memoria allocata per la macchina virtuale.
gpuName Nome dispositivo GPU Nome del dispositivo GPU da usare per il pass-through.
gpuPassthroughType DirectDeviceAssignment, ParaVirtualization o nessuno (nessun pass-through) Tipo pass-through GPU
gpuCount Valore intero compreso tra 1 e i core GPU del dispositivo Numero di dispositivi GPU per la macchina virtuale Nota: valido solo quando si usa DirectDeviceAssignment
acefalo None Se questo flag è presente, determina se l'utente deve confermare nel caso in cui venga generato un avviso di sicurezza.

Per altre informazioni, usare il comando Get-Help Set-EflowVM -full.

Set-EflowVmDNSServers

Il comando Set-EflowVmDNSServers configura i server DNS per la macchina virtuale EFLOW.

Parametro Valori accettati Commenti
vendpointName Valore stringa del nome dell'endpoint virtuale Usare Get-EflowVmEndpoint per ottenere le interfacce virtuali assegnate alla macchina virtuale EFLOW. Ad esempio DESKTOP-CONTOSO-EflowInterface
dnsServers Elenco di IPAddress del server DNS da usare per la risoluzione dei nomi Ad esempio @("10.0.10.1")

Per altre informazioni, usare il comando Get-Help Set-EflowVmDNSServers -full.

Set-EflowVmFeature

Il comando Set-EflowVmFeature abilita o disabilita lo stato delle funzionalità di IoT Edge per Linux in Windows.

Parametro Valori accettati Commenti
funzionalità DpsTpm, Defender Nome della funzionalità da attivare/disattivare.
abilitazione None Se questo flag è presente, il comando abilita la funzionalità.

Per altre informazioni, usare il comando Get-Help Set-EflowVmFeature -full.

Set-EflowVmTelemetryOption

Il comando Set-EflowVmTelemetryOption abilita o disabilita i dati di telemetria facoltativi all'interno della macchina virtuale.

Parametro Valori accettati Commenti
optionalTelemetry True o False Indica se sono selezionati i dati di telemetria facoltativi.

Per altre informazioni, usare il comando Get-Help Set-EflowVmTelemetryOption -full.

Start-EflowVm

Il comando Start-EflowVm avvia la macchina virtuale. Se la macchina virtuale è già stata avviata, non viene eseguita alcuna azione.

Per altre informazioni, usare il comando Get-Help Start-EflowVm -full.

Stop-EflowVm

Il comando Stop-EflowVm arresta la macchina virtuale. Se la macchina virtuale è già stata arrestata, non viene eseguita alcuna azione.

Per altre informazioni, usare il comando Get-Help Stop-EflowVm -full.

Verify-EflowVm

Il comando Verify-EflowVm è una funzione esposta che controlla se è stata creata la macchina virtuale IoT Edge per Linux in Windows. Accetta solo parametri comuni e restituisce True se la macchina virtuale è stata creata e False in caso contrario.

Per altre informazioni, usare il comando Get-Help Verify-EflowVm -full.

Passaggi successivi

Informazioni su come usare questi comandi per installare ed effettuare il provisioning di IoT Edge per Linux in Windows nell'articolo seguente: