Funzioni di PowerShell per IoT Edge per Linux in Windows
Si applica a: 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:
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
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 eVHDXDIR="<FULLY_QUALIFIED_PATH>"
al comando di installazione.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 | Sì o No | Collegamento per accettare/negare il contratto di licenza e ignorare il prompt del contratto di licenza. |
acceptOptionalTelemetry | Sì 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: