Condividi tramite


Gestire un dispositivo FPGA di Azure Stack Edge Pro tramite Windows PowerShell

La soluzione FPGA di Azure Stack Edge Pro consente di elaborare i dati e inviarli in rete ad Azure. Questo articolo descrive alcune delle attività di configurazione e gestione per il dispositivo AZURE Stack Edge Pro FPGA. È possibile usare il portale di Azure, l'interfaccia utente Web locale o l'interfaccia di Windows PowerShell per gestire il dispositivo.

Questo articolo è incentrato sulle attività eseguite usando l'interfaccia di PowerShell.

In questo articolo sono incluse le seguenti procedure:

  • Connettersi all'interfaccia di PowerShell
  • Creare un pacchetto di supporto
  • Caricamento del certificato
  • Reimpostare il dispositivo
  • Visualizzare le informazioni sul dispositivo
  • Ottenere i log di calcolo
  • Monitorare e risolvere i problemi dei moduli di calcolo

Connettersi all'interfaccia di PowerShell

A seconda del sistema operativo del client, le procedure per la connessione remota al dispositivo sono diverse.

Connettersi in remoto da un client Windows

Prima di iniziare, assicurarsi che il client Windows esegua Windows PowerShell 5.0 o versione successiva.

Seguire questa procedura per connettersi in remoto da un client Windows.

  1. Eseguire una sessione di Windows PowerShell come amministratore.

  2. Assicurarsi che il servizio Gestione remota Windows sia in esecuzione nel client. Al prompt dei comandi digitare:

    winrm quickconfig

    Per altre informazioni, vedere Installazione e configurazione per Gestione remota Windows.

  3. Assegnare una variabile all'indirizzo IP del dispositivo.

    $ip = "<device_ip>"

    Sostituire <device_ip> con l'indirizzo IP del dispositivo.

  4. Per aggiungere l'indirizzo IP del dispositivo all'elenco di host attendibili del client, digitare il comando seguente:

    Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force

  5. Avviare una sessione di Windows PowerShell nel dispositivo:

    Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell

  6. Specificare la password quando richiesto. Usare la stessa password usata per accedere all'interfaccia utente Web locale. La password predefinita dell'interfaccia utente Web locale è Password1. Quando si esegue correttamente la connessione al dispositivo usando PowerShell remoto, viene visualizzato l'output di esempio seguente:

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    PS C:\WINDOWS\system32> winrm quickconfig
    WinRM service is already running on this machine.
    PS C:\WINDOWS\system32> $ip = "10.100.10.10"
    PS C:\WINDOWS\system32> Set-Item WSMan:\localhost\Client\TrustedHosts $ip -Concatenate -Force
    PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell
    
    WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing. Changes made through this interface without involving Microsoft Support could result in an unsupported configuration.
    [10.100.10.10]: PS>
    

Connettersi in remoto da un client Linux

Nel client Linux che verrà usato per connettersi:

Per altre informazioni, vedere Comunicazione remota di PowerShell su SSH.

Seguire questa procedura per connettersi in remoto da un client NFS.

  1. Per aprire la sessione di PowerShell, digitare:

    pwsh

  2. Per la connessione tramite il client remoto, digitare:

    Enter-PSSession -ComputerName $ip -Authentication Negotiate -ConfigurationName Minishell -Credential ~\EdgeUser

    Quando richiesto, specificare la password usata per accedere al dispositivo.

Nota

Questa procedura non funziona in Mac OS.

Creare un pacchetto di supporto

Se si verificano problemi di dispositivo, è possibile creare un pacchetto di supporto dai log di sistema. supporto tecnico Microsoft usa questo pacchetto per risolvere i problemi. Per creare un pacchetto di supporto, seguire questa procedura:

  1. Connessione all'interfaccia di PowerShell del dispositivo.

  2. Usare il Get-HcsNodeSupportPackage comando per creare un pacchetto di supporto. L'utilizzo del cmdlet è il seguente:

    Get-HcsNodeSupportPackage [-Path] <string> [-Zip] [-ZipFileName <string>] [-Include {None | RegistryKeys | EtwLogs
            | PeriodicEtwLogs | LogFiles | DumpLog | Platform | FullDumps | MiniDumps | ClusterManagementLog | ClusterLog |
            UpdateLogs | CbsLogs | StorageCmdlets | ClusterCmdlets | ConfigurationCmdlets | KernelDump | RollbackLogs |
            Symbols | NetworkCmdlets | NetworkCmds | Fltmc | ClusterStorageLogs | UTElement | UTFlag | SmbWmiProvider |
            TimeCmds | LocalUILogs | ClusterHealthLogs | BcdeditCommand | BitLockerCommand | DirStats | ComputeRolesLogs |
            ComputeCmdlets | DeviceGuard | Manifests | MeasuredBootLogs | Stats | PeriodicStatLogs | MigrationLogs |
            RollbackSupportPackage | ArchivedLogs | Default}] [-MinimumTimestamp <datetime>] [-MaximumTimestamp <datetime>]
            [-IncludeArchived] [-IncludePeriodicStats] [-Credential <pscredential>]  [<CommonParameters>]
    

    Il cmdlet raccoglie i log dal dispositivo e copia tali log in una rete o in una condivisione locale specificata.

    I parametri usati sono i seguenti:

    • -Path - Specificare la rete o il percorso locale in cui copiare il pacchetto di supporto. (obbligatorio)
    • -Credential - Specificare le credenziali per accedere al percorso protetto.
    • -Zip - Specificare per generare un file ZIP.
    • -Include - Specificare di includere i componenti da includere nel pacchetto di supporto. Se non specificato, Default viene utilizzato .
    • -IncludeArchived - Specificare per includere i log archiviati nel pacchetto di supporto.
    • -IncludePeriodicStats - Specificare per includere i log stat periodici nel pacchetto di supporto.

Caricamento del certificato

Un certificato SSL appropriato garantisce che vengano inviate informazioni crittografate al server appropriato. Oltre alla crittografia, il certificato consente anche l'autenticazione. È possibile caricare il proprio certificato SSL attendibile tramite l'interfaccia di PowerShell del dispositivo.

  1. Connettersi all'interfaccia di PowerShell.

  2. Usare il Set-HcsCertificate cmdlet per caricare il certificato. Quando richiesto, specificare le informazioni seguenti:

    • CertificateFilePath - Percorso della condivisione che contiene il file del certificato in formato pfx .

    • CertificatePassword - Password usata per proteggere il certificato.

    • Credentials - Nome utente per accedere alla condivisione che contiene il certificato. Quando richiesto, fornire la password alla condivisione di rete.

      L'esempio seguente illustra l'utilizzo di questo cmdlet:

      Set-HcsCertificate -Scope LocalWebUI -CertificateFilePath "\\myfileshare\certificates\mycert.pfx" -CertificatePassword "mypassword" -Credential "Username"
      

È anche possibile caricare certificati IoT Edge per abilitare una connessione sicura tra il dispositivo IoT Edge e i dispositivi downstream che possono connettersi a esso. Esistono tre file (formato pem ) che è necessario installare:

  • Certificato CA radice o CA proprietaria
  • Certificato CA del dispositivo
  • Chiave privata del dispositivo

L'esempio seguente illustra l'utilizzo di questo cmdlet per installare i certificati IoT Edge:

Set-HcsCertificate -Scope IotEdge -RootCACertificateFilePath "\\hcfs\root-ca-cert.pem" -DeviceCertificateFilePath "\\hcfs\device-ca-cert.pem\" -DeviceKeyFilePath "\\hcfs\device-private-key.pem" -Credential "username"

Quando si esegue questo cmdlet, verrà richiesto di specificare la password per la condivisione di rete.

Per altre informazioni sui certificati, vedere Certificati di Azure IoT Edge o Installare i certificati in un gateway.

Visualizzare le informazioni sul dispositivo

  1. Connettersi all'interfaccia di PowerShell.

  2. Get-HcsApplianceInfo Usare per ottenere le informazioni per il dispositivo.

    L'esempio seguente illustra l'utilizzo di questo cmdlet:

    [10.100.10.10]: PS>Get-HcsApplianceInfo
    
    Id                            : b2044bdb-56fd-4561-a90b-407b2a67bdfc
    FriendlyName                  : DBE-NBSVFQR94S6
    Name                          : DBE-NBSVFQR94S6
    SerialNumber                  : HCS-NBSVFQR94S6
    DeviceId                      : 40d7288d-cd28-481d-a1ea-87ba9e71ca6b
    Model                         : Virtual
    FriendlySoftwareVersion       : Data Box Gateway 1902
    HcsVersion                    : 1.4.771.324
    IsClustered                   : False
    IsVirtual                     : True
    LocalCapacityInMb             : 1964992
    SystemState                   : Initialized
    SystemStatus                  : Normal
    Type                          : DataBoxGateway
    CloudReadRateBytesPerSec      : 0
    CloudWriteRateBytesPerSec     : 0
    IsInitialPasswordSet          : True
    FriendlySoftwareVersionNumber : 1902
    UploadPolicy                  : All
    DataDiskResiliencySettingName : Simple
    ApplianceTypeFriendlyName     : Data Box Gateway
    IsRegistered                  : False
    

    Ecco una tabella che riepiloga alcune delle informazioni importanti sul dispositivo:

    Parametro Descrizione
    FriendlyName Nome descrittivo del dispositivo configurato tramite l'interfaccia utente Web locale durante la distribuzione del dispositivo. Il nome descrittivo predefinito è il numero di serie del dispositivo.
    SerialNumber Il numero di serie del dispositivo è un numero univoco assegnato alla factory.
    Modello Modello per il dispositivo Azure Stack Edge o Data Box Gateway. Il modello è fisico per Azure Stack Edge e virtuale per Data Box Gateway.
    FriendlySoftwareVersion Stringa descrittiva che corrisponde alla versione del software del dispositivo. Per un'anteprima di sistema in esecuzione, la versione software descrittiva sarebbe Data Box Edge 1902.
    HcsVersion Versione del software HCS in esecuzione nel dispositivo. Ad esempio, la versione del software HCS corrispondente a Data Box Edge 1902 è 1.4.771.324.
    LocalCapacityInMb Capacità locale totale del dispositivo in Megabit.
    IsRegistered Questo valore indica se il dispositivo è attivato con il servizio.

Reimpostare il dispositivo

Per ripristinare il dispositivo, è necessario cancellare in modo sicuro tutti i dati presenti nel disco dati e nel disco di avvio del dispositivo.

Usare il cmdlet Reset-HcsAppliance per cancellare i dati presenti nei dischi dati e nel disco di avvio oppure solo nei dischi dati. Le SecureWipeBootDisk opzioni e SecureWipeDataDisks consentono di cancellare il disco di avvio e i dischi dati rispettivamente.

L'opzione SecureWipeBootDisk consente di cancellare i dati nel disco di avvio e di rendere inutilizzabile il dispositivo. Deve essere usata solo quando è necessario restituire il dispositivo a Microsoft. Per altre informazioni, vedere Restituire il dispositivo a Microsoft.

Se si usa il ripristino del dispositivo nell'interfaccia utente Web locale, vengono cancellati in modo sicuro i dati solo nei dischi dati, mentre il disco di avvio rimane intatto. Il disco di avvio contiene la configurazione del dispositivo.

  1. Connettersi all'interfaccia di PowerShell.

  2. Al prompt dei comandi digitare:

    Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks

    Nell'esempio seguente viene illustrato come usare questo cmdlet:

    [10.128.24.33]: PS>Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks
    
    Confirm
    Are you sure you want to perform this action?
    Performing the operation "Reset-HcsAppliance" on target "ShouldProcess appliance".
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): N
    

Ottenere i log di calcolo

Se il ruolo di calcolo è configurato nel dispositivo, è anche possibile ottenere i log di calcolo tramite l'interfaccia di PowerShell.

  1. Connettersi all'interfaccia di PowerShell.

  2. Get-AzureDataBoxEdgeComputeRoleLogs Usare per ottenere i log di calcolo per il dispositivo.

    L'esempio seguente illustra l'utilizzo di questo cmdlet:

    Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollection
    

    Ecco una descrizione dei parametri usati per il cmdlet :

    • Path: specificare un percorso di rete per la condivisione in cui si vuole creare il pacchetto di log di calcolo.
    • Credential: specificare il nome utente per la condivisione di rete. Quando si esegue questo cmdlet, sarà necessario specificare la password di condivisione.
    • FullLogCollection: questo parametro garantisce che il pacchetto di log conterrà tutti i log di calcolo. Per impostazione predefinita, il pacchetto di log contiene solo un subset di log.

Monitorare e risolvere i problemi dei moduli di calcolo

In un dispositivo Azure Stack Edge con il ruolo di calcolo configurato, è possibile risolvere i problemi o monitorare il dispositivo usando due diversi set di comandi.

  • Uso iotedge dei comandi. Questi comandi sono disponibili per le operazioni di base per il dispositivo.
  • Uso dkrdbe dei comandi. Questi comandi sono disponibili per un set completo di operazioni per il dispositivo.

Per eseguire uno dei seguenti set di comandi, è necessario Connessione all'interfaccia di PowerShell.

Usare iotedge i comandi

Per visualizzare un elenco dei comandi disponibili, connettersi all'interfaccia di PowerShell e usare la iotedge funzione .

[10.100.10.10]: PS>iotedge -?                                                                                                                                                                                                 Usage: iotedge COMMAND

Commands:
   check
   list
   logs
   restart

[10.100.10.10]: PS>

La tabella seguente contiene una breve descrizione dei comandi disponibili per iotedge:

Comando Descrizione
check Eseguire controlli automatizzati per verificare la presenza di problemi comuni di configurazione e connettività
list Elencare i moduli
logs Recuperare i log di un modulo
restart Arrestare e riavviare un modulo

Usare dkrdbe i comandi

Per visualizzare un elenco dei comandi disponibili, connettersi all'interfaccia di PowerShell e usare la dkrdbe funzione .

[10.100.10.10]: PS>dkrdbe -?
Usage: dkrdbe COMMAND

Commands:
   image [prune]
   images
   inspect
   login
   logout
   logs
   port
   ps
   pull
   start
   stats
   stop
   system [df]
   top

[10.100.10.10]: PS>

La tabella seguente contiene una breve descrizione dei comandi disponibili per dkrdbe:

Comando Descrizione
image Gestire le immagini. Per rimuovere le immagini inutilizzate, usare: dkrdbe image prune -a -f
images Elencare le immagini
inspect Restituire informazioni di basso livello sugli oggetti Docker
login Accedere a un registro Docker
logout Disconnettersi da un registro Docker
logs Recuperare i log di un contenitore
port Elencare i mapping delle porte o un mapping specifico per il contenitore
ps Elencare i contenitori
pull Eseguire il pull di un'immagine o di un repository da un registro
start Avviare uno o più contenitori arrestati
stats Visualizzare un flusso live delle statistiche di utilizzo delle risorse dei contenitori
stop Arrestare uno o più contenitori in esecuzione
system Gestire Docker
top Visualizzare i processi in esecuzione di un contenitore

Per ottenere assistenza per qualsiasi comando disponibile, usare dkrdbe <command-name> --help.

Ad esempio, per comprendere l'utilizzo del port comando, digitare:

[10.100.10.10]: P> dkrdbe port --help

Usage:  dkr port CONTAINER [PRIVATE_PORT[/PROTO]]

List port mappings or a specific mapping for the container
[10.100.10.10]: P> dkrdbe login --help

Usage:  docker login [OPTIONS] [SERVER]

Log in to a Docker registry.
If no server is specified, the default is defined by the daemon.

Options:
  -p, --password string   Password
      --password-stdin    Take the password from stdin
  -u, --username string   Username
[10.100.10.10]: PS>

I comandi disponibili per la dkrdbe funzione usano gli stessi parametri usati per i normali comandi docker. Per le opzioni e i parametri usati con il comando docker, passare a Usare la riga di comando Docker.

Per verificare se il modulo è stato distribuito correttamente

I moduli di calcolo sono contenitori con una logica di business implementata. Per verificare se un modulo di calcolo viene distribuito correttamente, eseguire il ps comando e verificare se il contenitore (corrispondente al modulo di calcolo) è in esecuzione.

Per ottenere l'elenco di tutti i contenitori (inclusi quelli sospesi), eseguire il ps -a comando .

[10.100.10.10]: P> dkrdbe ps -a
CONTAINER ID        IMAGE                                                COMMAND                   CREATED             STATUS              PORTS                                                                  NAMES
d99e2f91d9a8        edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64   "dotnet FileMoveModu…"    2 days ago          Up 2 days                                                                                  movefile
0a06f6d605e9        edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64   "dotnet FileMoveModu…"    2 days ago          Up 2 days                                                                                  filemove
2f8a36e629db        mcr.microsoft.com/azureiotedge-hub:1.0               "/bin/sh -c 'echo \"$…"   2 days ago          Up 2 days           0.0.0.0:443->443/tcp, 0.0.0.0:5671->5671/tcp, 0.0.0.0:8883->8883/tcp   edgeHub
acce59f70d60        mcr.microsoft.com/azureiotedge-agent:1.0             "/bin/sh -c 'echo \"$…"   2 days ago          Up 2 days                                                                                  edgeAgent
[10.100.10.10]: PS>

Se si è verificato un errore durante la creazione dell'immagine del contenitore o durante il pull dell'immagine, eseguire logs edgeAgent. EdgeAgent è il contenitore di runtime di IoT Edge responsabile del provisioning di altri contenitori.

Poiché logs edgeAgent esegue il dump di tutti i log, un buon modo per visualizzare gli errori recenti consiste nell'usare l'opzione --tail 20.

[10.100.10.10]: PS>dkrdbe logs edgeAgent --tail 20
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Util.Uds.HttpUdsMessageHandler] - Connected socket /var/run/iotedge/mgmt.sock
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Util.Uds.HttpUdsMessageHandler] - Sending request http://mgmt.sock/modules?api-version=2018-06-28
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Core.Agent] - Getting edge agent config...
2019-02-28 23:38:23.464 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Core.Agent] - Obtained edge agent config
2019-02-28 23:38:23.469 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Edgelet.ModuleManagementHttpClient] - Received a valid Http response from unix:///var/run/iotedge/mgmt.soc
k for List modules
--------------------CUT---------------------
--------------------CUT---------------------
08:28.1007774+00:00","restartCount":0,"lastRestartTimeUtc":"2019-02-26T20:08:28.1007774+00:00","runtimeStatus":"running","version":"1.0","status":"running","restartPolicy":"always
","type":"docker","settings":{"image":"edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64","imageHash":"sha256:47778be0602fb077d7bc2aaae9b0760fbfc7c058bf4df192f207ad6cbb96f7cc","c
reateOptions":"{\"HostConfig\":{\"Binds\":[\"/home/hcsshares/share4-dl460:/home/input\",\"/home/hcsshares/share4-iot:/home/output\"]}}"},"env":{}}
2019-02-28 23:38:28.480 +00:00 [DBG] [Microsoft.Azure.Devices.Edge.Agent.Core.Planners.HealthRestartPlanner] - HealthRestartPlanner created Plan, with 0 command(s).

Per ottenere i log dei contenitori

Per ottenere i log per un contenitore specifico, elencare prima il contenitore e quindi ottenere i log per il contenitore a cui si è interessati.

  1. Connettersi all'interfaccia di PowerShell.

  2. Per ottenere l'elenco dei contenitori in esecuzione, eseguire il ps comando .

    [10.100.10.10]: P> dkrdbe ps
    CONTAINER ID        IMAGE                                                COMMAND                   CREATED             STATUS              PORTS                                                                  NAMES
    d99e2f91d9a8        edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64   "dotnet FileMoveModu…"    2 days ago          Up 2 days                                                                                  movefile
    0a06f6d605e9        edgecompute.azurecr.io/filemovemodule2:0.0.1-amd64   "dotnet FileMoveModu…"    2 days ago          Up 2 days                                                                                  filemove
    2f8a36e629db        mcr.microsoft.com/azureiotedge-hub:1.0               "/bin/sh -c 'echo \"$…"   2 days ago          Up 2 days           0.0.0.0:443->443/tcp, 0.0.0.0:5671->5671/tcp, 0.0.0.0:8883->8883/tcp   edgeHub
    acce59f70d60        mcr.microsoft.com/azureiotedge-agent:1.0             "/bin/sh -c 'echo \"$…"   2 days ago          Up 2 days                                                                                  edgeAgent
    
  3. Prendere nota dell'ID contenitore per il contenitore per cui sono necessari i log.

  4. Per ottenere i log per un contenitore specifico, eseguire il logs comando specificando l'ID contenitore.

    [10.100.10.10]: PS>dkrdbe logs d99e2f91d9a8
    02/26/2019 18:21:45: Info: Opening module client connection.
    02/26/2019 18:21:46: Info: Initializing with input: /home/input, output: /home/output.
    02/26/2019 18:21:46: Info: IoT Hub module client initialized.
    02/26/2019 18:22:24: Info: Received message: 1, SequenceNumber: 0 CorrelationId: , MessageId: 081886a07e694c4c8f245a80b96a252a Body: [{"ChangeType":"Created","ShareRelativeFilePath":"\\__Microsoft Data Box Edge__\\Upload\\Errors.xml","ShareName":"share4-dl460"}]
    02/26/2019 18:22:24: Info: Moving input file: /home/input/__Microsoft Data Box Edge__/Upload/Errors.xml to /home/output/__Microsoft Data Box Edge__/Upload/Errors.xml
    02/26/2019 18:22:24: Info: Processed event.
    02/26/2019 18:23:38: Info: Received message: 2, SequenceNumber: 0 CorrelationId: , MessageId: 30714d005eb048e7a4e7e3c22048cf20 Body: [{"ChangeType":"Created","ShareRelativeFilePath":"\\f [10]","ShareName":"share4-dl460"}]
    02/26/2019 18:23:38: Info: Moving input file: /home/input/f [10] to /home/output/f [10]
    02/26/2019 18:23:38: Info: Processed event.
    

Per monitorare le statistiche di utilizzo del dispositivo

Per monitorare la memoria, l'utilizzo della CPU e l'I/O nel dispositivo, usare il stats comando .

  1. Connettersi all'interfaccia di PowerShell.

  2. Eseguire il stats comando in modo da disabilitare il flusso live ed eseguire il pull solo del primo risultato.

    dkrdbe stats --no-stream
    

    L'esempio seguente illustra l'utilizzo di questo cmdlet:

    [10.100.10.10]: P> dkrdbe stats --no-stream
    CONTAINER ID        NAME          CPU %         MEM USAGE / LIMIT     MEM %         NET I/O             BLOCK I/O           PIDS
    d99e2f91d9a8        movefile      0.0           24.4MiB / 62.89GiB    0.04%         751kB / 497kB       299kB / 0B          14
    0a06f6d605e9        filemove      0.00%         24.11MiB / 62.89GiB   0.04%         679kB / 481kB       49.5MB / 0B         14
    2f8a36e629db        edgeHub       0.18%         173.8MiB / 62.89GiB   0.27%         4.58MB / 5.49MB     25.7MB / 2.19MB     241
    acce59f70d60        edgeAgent     0.00%         35.55MiB / 62.89GiB   0.06%         2.23MB / 2.31MB     55.7MB / 332kB      14
    [10.100.10.10]: PS>
    

Uscire dalla sessione remota

Per uscire dalla sessione remota di PowerShell, chiudere la finestra di PowerShell.

Passaggi successivi