

AWS Strumenti per PowerShell La V4 è entrata in modalità manutenzione.

[Ti consigliamo di migrare alla AWS Strumenti per PowerShell versione V5.](https://docs.aws.amazon.com/powershell/v5/userguide/) Per ulteriori dettagli e informazioni su come eseguire la migrazione, consulta il nostro annuncio sulla modalità di [manutenzione](https://aws.amazon.com/blogs/developer/aws-tools-for-powershell-v4-maintenance-mode-announcement/).

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Installazione del AWS Strumenti per PowerShell
<a name="pstools-getting-set-up"></a>

Per installare e utilizzare correttamente i AWS Strumenti per PowerShell cmdlet, vedere i passaggi nei seguenti argomenti.

**Topics**
+ [Installazione su Windows](pstools-getting-set-up-windows.md)
+ [Installazione su Linux o macOS](pstools-getting-set-up-linux-mac.md)
+ [Migrazione dalla AWS Strumenti per PowerShell versione 3.3 alla versione 4](v4migration.md)

# Installazione di AWS Strumenti per PowerShell su Windows
<a name="pstools-getting-set-up-windows"></a>

Un computer basato su Windows può eseguire qualsiasi opzione del pacchetto: AWS Strumenti per PowerShell 
+ [**`AWS.Tools`**](#ps-installing-awstools)- La versione modulare di. AWS Strumenti per PowerShell Ogni AWS servizio è supportato da un proprio piccolo modulo individuale, con moduli `AWS.Tools.Common` di supporto condivisi e. `AWS.Tools.Installer`
+ [**AWSPowerConchiglia. NetCore**](#ps-installing-awspowershellnetcore) - La versione a modulo singolo di grandi dimensioni di AWS Strumenti per PowerShell. Tutti i AWS servizi sono supportati da questo unico modulo di grandi dimensioni.
**Nota**  
Tieni presente che il singolo modulo potrebbe essere troppo grande per essere utilizzato con le funzioni [AWS Lambda](https://aws.amazon.com/lambda/). Utilizza invece la versione modulare mostrata in precedenza.
+ [**AWSPowerShell**](#ps-installing-awswindowspowershell): la versione precedente, specifica per Windows, a modulo singolo e di grandi dimensioni di. AWS Strumenti per PowerShell Tutti i AWS servizi sono supportati da questo unico modulo di grandi dimensioni.

Il pacchetto scelto dipende dalla versione e dall'edizione di Windows in esecuzione. 

**Nota**  
 AWS Strumenti per PowerShell Sono installati per impostazione predefinita su tutte le Amazon Machine Images () AMIs basate su Windows. L'opzione installata dipende dall'AMI. Molti AMIs hanno il modulo AWSPower Shell, ma alcuni potrebbero avere un'opzione diversa. Ad esempio, Amazon EC2 AMIs for Windows Server 2025 utilizza l'`AWS.Tools`opzione modulare.

La configurazione di AWS Strumenti per PowerShell prevede le seguenti attività di alto livello, descritte in dettaglio in questo argomento.

1. Installa l'opzione di AWS Strumenti per PowerShell pacchetto appropriata per il tuo ambiente.

1. Verificare che l'esecuzione dello script sia abilitata eseguendo il cmdlet `Get-ExecutionPolicy`.

1. Importa il AWS Strumenti per PowerShell modulo nella tua PowerShell sessione.

## Prerequisiti
<a name="prerequisites"></a>

Le versioni più recenti di PowerShell, tra cui PowerShell Core, sono disponibili come download da Microsoft all'indirizzo [Installazione di varie versioni del PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) sito Web di Microsoft.

## Installazione di `AWS.Tools` su Windows
<a name="ps-installing-awstools"></a>

È possibile installare la versione modulare di AWS Strumenti per PowerShell su computer che eseguono Windows con Windows PowerShell 5.1 o PowerShell Core 6.0 o versione successiva. Per informazioni su come installare PowerShell Core, vedere [Installazione di varie versioni di PowerShell sul sito Web di](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) Microsoft.

È possibile installare `AWS.Tools` in uno dei tre modi:
+ Utilizzo dei cmdlet nel modulo `AWS.Tools.Installer`. Questo modulo semplifica l'installazione e l'aggiornamento di altri `AWS.Tools` moduli. `AWS.Tools.Installer`richiede `PowerShellGet` e ne scarica e installa automaticamente una versione aggiornata. `AWS.Tools.Installer`mantiene automaticamente sincronizzate le versioni del modulo. Quando si installa o si esegue l'aggiornamento a una versione più recente di un modulo, i cmdlet inclusi aggiornano `AWS.Tools.Installer` automaticamente tutti gli altri `AWS.Tools` moduli alla stessa versione.

  Questo metodo è descritto nella procedura che segue.
+ Scaricando i moduli da `[AWS.Tools.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWS.Tools.zip)` ed estraendoli in una delle cartelle dei moduli. È possibile scoprire le cartelle dei moduli visualizzando il valore della variabile di ambiente `PSModulePath`.
**avvertimento**  
Dopo aver scaricato il file ZIP e prima di estrarne il contenuto, potrebbe essere necessario sbloccarlo. Questa operazione viene in genere eseguita aprendo le proprietà del file, visualizzando la scheda **Generale** e selezionando la casella di controllo **Sblocca**, se presente.  
Se il file ZIP deve essere sbloccato ma non lo fai, potresti ricevere errori simili ai seguenti: «Import-Module: Could not load file or assembly».
+ Installazione di ogni modulo di servizio dalla PowerShell Galleria utilizzando il cmdlet. `Install-Module`

**Per l'installazione `AWS.Tools` su Windows utilizzando il modulo `AWS.Tools.Installer`**

1. Avvia una PowerShell sessione.
**Nota**  
Ti consigliamo di *non lavorare* PowerShell come amministratore con autorizzazioni elevate, tranne quando richiesto dall'attività in questione. Ciò è dovuto al potenziale rischio per la sicurezza ed è in contrasto con il principio del privilegio minimo.

1. Per installare il pacchetto `AWS.Tools` suddiviso in moduli, esegui il comando seguente.

   ```
   PS > Install-Module -Name AWS.Tools.Installer
   
   Untrusted repository
   You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure
    you want to install the modules from 'PSGallery'?
   [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): y
   ```

   Se ricevi una notifica in cui è indicato che il repository non è attendibile, ti viene chiesto se desideri installarlo comunque. Inserisci **y** per consentire l' PowerShell installazione del modulo. Per evitare il prompt e installare il modulo senza dover considerare attendibile il repository, puoi eseguire il comando con il parametro `-Force`.

   ```
   PS > Install-Module -Name AWS.Tools.Installer -Force
   ```

1. È ora possibile installare il modulo per ogni AWS servizio che si desidera utilizzare utilizzando il `Install-AWSToolsModule` cmdlet. Ad esempio, il comando seguente installa i moduli Amazon EC2 e Amazon S3. Questo comando installa anche tutti i moduli dipendenti necessari per il funzionamento del modulo specificato. Ad esempio, quando installi il primo modulo di servizio `AWS.Tools`, viene installato anche `AWS.Tools.Common`. Si tratta di un modulo condiviso richiesto da tutti i moduli di AWS servizio. Rimuove anche le versioni precedenti dei moduli e aggiorna altri moduli alla stessa versione più recente.

   ```
   PS > Install-AWSToolsModule AWS.Tools.EC2,AWS.Tools.S3 -CleanUp
     Confirm
     Are you sure you want to perform this action?
     Performing the operation "Install-AWSToolsModule" on target "AWS Tools version 4.0.0.0".
     [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):
   
     Installing module AWS.Tools.Common version 4.0.0.0
     Installing module AWS.Tools.EC2 version 4.0.0.0
     Installing module AWS.Tools.Glacier version 4.0.0.0
     Installing module AWS.Tools.S3 version 4.0.0.0
   
     Uninstalling AWS.Tools version 3.3.618.0
     Uninstalling module AWS.Tools.Glacier
     Uninstalling module AWS.Tools.S3
     Uninstalling module AWS.Tools.SimpleNotificationService
     Uninstalling module AWS.Tools.SQS
     Uninstalling module AWS.Tools.Common
   ```
**Nota**  
Il `Install-AWSToolsModule` cmdlet scarica tutti i moduli richiesti dal file `PSRepository` denominato `PSGallery` ([https://www.powershellgallery.com/](https://www.powershellgallery.com/)) e lo considera una fonte attendibile. Usa il comando `Get-PSRepository -Name PSGallery` per ulteriori informazioni su `PSRepository`.

   Per impostazione predefinita, il comando precedente installa i moduli nella cartella `%USERPROFILE%\Documents\WindowsPowerShell\Modules`. Per installarlo AWS Strumenti per PowerShell per tutti gli utenti di un computer, è necessario eseguire il comando seguente in una PowerShell sessione avviata come amministratore. Ad esempio, il seguente comando installa il modulo IAM nella cartella `%ProgramFiles%\WindowsPowerShell\Modules` che è accessibile a tutti gli utenti.

   ```
   PS > Install-AWSToolsModule AWS.Tools.IdentityManagement -Scope AllUsers
   ```

   Per installare altri moduli, esegui comandi simili con i nomi dei moduli appropriati, come si trova nella [PowerShell Galleria](https://www.powershellgallery.com/packages?q=aws).

## Installa AWSPower Shell. NetCore su Windows
<a name="ps-installing-awspowershellnetcore"></a>

Puoi installare la AWSPower Shell. NetCore su computer che eseguono Windows con PowerShell versioni da 3 a 5.1 oppure PowerShell Core 6.0 o versioni successive. Per informazioni su come installare PowerShell Core, vedi [Installazione di varie versioni PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) sul PowerShell sito Web di Microsoft.

È possibile installare AWSPower Shell. NetCore in due modi
+ Scaricamento del modulo da [AWSPowerShell. NetCore.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWSPowerShell.NetCore.zip) ed estraendolo in una delle directory del modulo. Puoi individuare le directory dei moduli visualizzando il valore della variabile di ambiente `PSModulePath`.
**avvertimento**  
Dopo aver scaricato il file ZIP e prima di estrarne il contenuto, potrebbe essere necessario sbloccarlo. Questa operazione viene in genere eseguita aprendo le proprietà del file, visualizzando la scheda **Generale** e selezionando la casella di controllo **Sblocca**, se presente.  
Se il file ZIP deve essere sbloccato ma non lo fai, potresti ricevere errori simili ai seguenti: «Import-Module: Could not load file or assembly».
+ Installazione dalla PowerShell Galleria utilizzando il `Install-Module` cmdlet, come descritto nella procedura seguente.

**Per installare Shell AWSPower. NetCore dalla PowerShell Galleria utilizzando il cmdlet Install-Module**

Per installare Shell. AWSPower NetCore dalla PowerShell Galleria, sul computer deve essere installata la PowerShell versione 5.0 o versione successiva oppure la versione PowerShell 3 o versione successiva. [PowerShellGet](https://www.powershellgallery.com/packages/PowerShellGet) Esegui il comando seguente.

```
PS > Install-Module -name AWSPowerShell.NetCore
```

Se esegui PowerShell come amministratore, il comando precedente viene installato AWS Strumenti per PowerShell per tutti gli utenti del computer. Se si esegue PowerShell come utente standard senza autorizzazioni di amministratore, lo stesso comando viene installato solo AWS Strumenti per PowerShell per l'utente corrente.

Per effettuare l'installazione solo per l'utente corrente quando tale utente dispone delle autorizzazioni di amministratore, esegui il comando con il set di parametri `-Scope CurrentUser`, come indicato di seguito.

```
PS > Install-Module -name AWSPowerShell.NetCore -Scope CurrentUser
```

Sebbene la PowerShell versione 3.0 e le versioni successive in genere carichino i moduli nella PowerShell sessione la prima volta che si esegue un cmdlet nel modulo Shell. AWSPower NetCore il modulo è troppo grande per supportare questa funzionalità. È invece necessario caricare esplicitamente la AWSPower Shell. NetCore Modulo principale nella PowerShell sessione eseguendo il comando seguente.

```
PS > Import-Module AWSPowerShell.NetCore
```

Per caricare la AWSPower Shell. NetCore inserisci automaticamente il modulo in una PowerShell sessione, aggiungi quel comando al tuo PowerShell profilo. Per ulteriori informazioni sulla modifica del PowerShell profilo, consulta [About Profiles](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_profiles) nella PowerShell documentazione.

## Installa AWSPower Shell su Windows PowerShell
<a name="ps-installing-awswindowspowershell"></a>

Puoi installarlo AWS Tools for Windows PowerShell in due modi:
+ Scaricando il modulo da [AWSPowerShell.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWSPowerShell.zip) ed estraendolo in una delle directory del modulo. Puoi individuare le directory dei moduli visualizzando il valore della variabile di ambiente `PSModulePath`.
**avvertimento**  
Dopo aver scaricato il file ZIP e prima di estrarne il contenuto, potrebbe essere necessario sbloccarlo. Questa operazione viene in genere eseguita aprendo le proprietà del file, visualizzando la scheda **Generale** e selezionando la casella di controllo **Sblocca**, se presente.  
Se il file ZIP deve essere sbloccato ma non lo fai, potresti ricevere errori simili ai seguenti: «Import-Module: Could not load file or assembly».
+ Installazione dalla PowerShell Galleria utilizzando il `Install-Module` cmdlet come descritto nella procedura seguente.

**Per installare AWSPower Shell dalla PowerShell Gallery utilizzando il cmdlet Install-Module**

È possibile installare AWSPower Shell dalla PowerShell Galleria se si esegue la PowerShell versione 5.0 o successiva oppure se è installata [PowerShellGet](https://www.powershellgallery.com/packages/PowerShellGet)la versione 3 o successiva. PowerShell Puoi installare e aggiornare AWSPower Shell dalla [PowerShellGalleria](https://www.powershellgallery.com/packages/AWSPowerShell) di Microsoft eseguendo il comando seguente.

```
 PS > Install-Module -Name AWSPowerShell
```

Per caricare automaticamente il modulo AWSPower Shell in una PowerShell sessione, aggiungi il `import-module` cmdlet precedente al tuo PowerShell profilo. Per ulteriori informazioni sulla modifica del PowerShell profilo, vedere [Informazioni sui profili](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-6) nella PowerShell documentazione.

**Nota**  
Gli strumenti per Windows PowerShell sono installati per impostazione predefinita su tutte le Amazon Machine Images () AMIs basate su Windows.

## Abilitazione dell'esecuzione di uno script
<a name="enable-script-execution"></a>

Per caricare i AWS Strumenti per PowerShell moduli, è necessario abilitare l'esecuzione degli PowerShell script. Per abilitare l'esecuzione dello script, eseguire il cmdlet `Set-ExecutionPolicy` per impostare una policy `RemoteSigned`. Per ulteriori informazioni, consulta [Informazioni sulle policy di esecuzione](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies) sul sito Web Microsoft Technet.

**Nota**  
Questo è un requisito solo per i computer che eseguono Windows. La restrizione di sicurezza `ExecutionPolicy` non è presente su altri sistemi operativi.

 **Per abilitare l'esecuzione dello script** 

1. Per impostare la policy di esecuzione sono necessari i diritti di amministratore. Se non hai effettuato l'accesso come utente con diritti di amministratore, apri una PowerShell sessione come amministratore. Scegli **Start**, quindi seleziona **Tutti i programmi**. Scegli **Accessori**, quindi scegli **Windows PowerShell**. Fate clic con PowerShell il pulsante destro del mouse su **Windows** e nel menu contestuale scegliete **Esegui come amministratore**.

1. Nel prompt dei comandi inserisci quanto segue.

   ```
   PS > Set-ExecutionPolicy RemoteSigned 
   ```

**Nota**  
Su un sistema a 64 bit, è necessario eseguire questa operazione separatamente per la versione a 32 bit di PowerShell **Windows PowerShell (x86**).

Se la politica di esecuzione non è impostata correttamente, PowerShell mostra il seguente errore ogni volta che si tenta di eseguire uno script, ad esempio il profilo.

```
File C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because the execution
 of scripts is disabled on this system. Please see "get-help about_signing" for more details.
At line:1 char:2
+ . <<<<  'C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException
```

Il programma di PowerShell installazione di Tools for Windows aggiorna automaticamente il [PSModulePath](http://msdn.microsoft.com/en-us/library/windows/desktop/dd878326.aspx) per includere la posizione della directory che contiene il `AWSPowerShell` modulo. 

Poiché `PSModulePath` include la posizione della directory del AWS modulo, il `Get-Module -ListAvailable` cmdlet mostra il modulo.

```
PS > Get-Module -ListAvailable

ModuleType Name                      ExportedCommands
---------- ----                      ----------------
Manifest   AppLocker                 {}
Manifest   BitsTransfer              {}
Manifest   PSDiagnostics             {}
Manifest   TroubleshootingPack       {}
Manifest   AWSPowerShell             {Update-EBApplicationVersion, Set-DPStatus, Remove-IAMGroupPol...
```

## Controllo delle versioni
<a name="pstools-versioning"></a>

AWS rilascia AWS Strumenti per PowerShell periodicamente nuove versioni di per supportare nuovi AWS servizi e funzionalità. Per determinare la versione degli strumenti installata, eseguire il AWSPower ShellVersion cmdlet [Get-](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-AWSPowerShellVersion.html).

Per esempio:

```
PS > Get-AWSPowerShellVersion

AWS Tools for PowerShell
Version 4.1.849
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Amazon Web Services SDK for .NET
Core Runtime Version 3.7.402.75
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Release notes: https://github.com/aws/aws-tools-for-powershell/blob/v4.1/changelogs/CHANGELOG.ALL.md

This software includes third party software subject to the following copyrights:
- Logging from log4net, Apache License
[http://logging.apache.org/log4net/license.html]
```

È inoltre possibile aggiungere il `-ListServiceVersionInfo` parametro a un AWSPower ShellVersion comando [Get-](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-AWSPowerShellVersion.html) per visualizzare un elenco dei AWS servizi supportati nella versione corrente degli strumenti. Se utilizzi l'opzione `AWS.Tools.*` suddivisa in moduli, vengono visualizzati solo i moduli attualmente importati.

Per esempio:

```
PS > Get-AWSPowerShellVersion -ListServiceVersionInfo
...

Service                            Noun Prefix Module Name                       SDK
                                                                                 Assembly
                                                                                 Version
-------                            ----------- -----------                       -----------
AWS IAM Access Analyzer            IAMAA       AWS.Tools.AccessAnalyzer          3.7.400.33
AWS Account                        ACCT        AWS.Tools.Account                 3.7.400.33
AWS Certificate Manager Private... PCA         AWS.Tools.ACMPCA                  3.7.400.34
AWS Amplify                        AMP         AWS.Tools.Amplify                 3.7.401.28
Amplify Backend                    AMPB        AWS.Tools.AmplifyBackend          3.7.400.33
...
```

Per determinare la versione PowerShell che stai utilizzando, inserisci `$PSVersionTable` per visualizzare il contenuto della [variabile automatica](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-6) \$1 PSVersion Table.

Per esempio:

```
PS > $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.2.2
PSEdition                      Core
GitCommitId                    6.2.2
OS                             Darwin 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
```

## Aggiornamento di AWS Strumenti per PowerShell su Windows
<a name="pstools-updating"></a>

Periodicamente, man mano che AWS Strumenti per PowerShell vengono rilasciate versioni aggiornate di, è necessario aggiornare la versione in esecuzione localmente. 

### Aggiornate i moduli modulari `AWS.Tools`
<a name="update-the-tools-for-powershell"></a>

Per aggiornare i `AWS.Tools` moduli alla versione più recente, esegui il seguente comando:

```
PS > Update-AWSToolsModule -CleanUp
```

Questo comando aggiorna tutti i moduli `AWS.Tools` attualmente installati e, dopo un aggiornamento riuscito, rimuove altre versioni installate.

**Nota**  
Il `Update-AWSToolsModule` cmdlet scarica tutti i moduli dal file `PSRepository` denominato `PSGallery` ([https://www.powershellgallery.com/](https://www.powershellgallery.com/)) e lo considera una fonte attendibile. Usa il comando `Get-PSRepository -Name PSGallery` per ulteriori informazioni su questo `PSRepository`.

### Aggiorna gli strumenti per Core PowerShell
<a name="update-the-tools-for-powershell-core"></a>

Esegui il `Get-AWSPowerShellVersion` cmdlet per determinare la versione in esecuzione e confrontala con la versione di Tools for Windows PowerShell disponibile sul sito Web [PowerShell Gallery](https://www.powershellgallery.com/packages/AWSPowerShell). Consigliamo di controllare ogni due o tre settimane. Il supporto per nuovi comandi e AWS servizi è disponibile solo dopo l'aggiornamento a una versione con tale supporto.

Prima di installare una versione più recente di AWSPower Shell. NetCore, disinstalla il modulo esistente. Chiudi tutte PowerShell le sessioni aperte prima di disinstallare il pacchetto esistente. Per disinstallare il pacchetto, eseguire il comando seguente.

```
PS > Uninstall-Module -Name AWSPowerShell.NetCore -AllVersions
```

Dopo aver disinstallato il pacchetto, installa il modulo aggiornato eseguendo il comando riportato qui di seguito.

```
PS > Install-Module -Name AWSPowerShell.NetCore
```

Dopo l'installazione, esegui il comando `Import-Module AWSPowerShell.NetCore` per caricare i cmdlet aggiornati nella sessione PowerShell .

### Aggiorna gli strumenti per Windows PowerShell
<a name="update-the-tools-for-windows-powershell"></a>

Esegui il `Get-AWSPowerShellVersion` cmdlet per determinare la versione in esecuzione e confrontala con la versione di Tools for Windows PowerShell disponibile sul sito Web [PowerShell Gallery](https://www.powershellgallery.com/packages/AWSPowerShell). Consigliamo di controllare ogni due o tre settimane. Il supporto per nuovi comandi e AWS servizi è disponibile solo dopo l'aggiornamento a una versione con tale supporto.
+ Se hai effettuato l'installazione utilizzando il cmdlet `Install-Module`, esegui il comando riportato qui di seguito.

  ```
  PS > Uninstall-Module -Name AWSPowerShell -AllVersions
  PS > Install-Module -Name AWSPowerShell
  ```
+ Se hai effettuato l'installazione utilizzando un file ZIP scaricato:

  1. Scarica la versione più recente dal sito PowerShell Web [Tools for](https://aws.amazon.com/powershell/). Confronta il numero di versione del pacchetto nel nome del file scaricato con il numero di versione visualizzato quando esegui il cmdlet `Get-AWSPowerShellVersion`.

  1. Se il numero della versione scaricata è superiore a quello della versione installata, chiudi tutti gli strumenti per le PowerShell console Windows.

  1. Installa la versione più recente degli strumenti per Windows. PowerShell

Dopo l'installazione, `Import-Module AWSPowerShell` esegui per caricare i cmdlet aggiornati nella sessione. PowerShell Oppure esegui la AWS Strumenti per PowerShell console personalizzata dal menu **Start**.

# Installazione AWS Strumenti per PowerShell su Linux o macOS
<a name="pstools-getting-set-up-linux-mac"></a>

Questo argomento fornisce istruzioni su come installarlo AWS Strumenti per PowerShell su Linux o macOS.

## Panoramica della configurazione
<a name="pstools-installing-core-prerequisites"></a>

Per l'installazione AWS Strumenti per PowerShell su un computer Linux o macOS, puoi scegliere tra due opzioni di pacchetto:
+ [**`AWS.Tools`**](#install-aws.tools-on-linux-macos)— La versione modulare di. AWS Strumenti per PowerShell Ogni AWS servizio è supportato da un proprio piccolo modulo individuale, con moduli di supporto condivisi. `AWS.Tools.Common`
+ [**AWSPowerConchiglia. NetCore**](#install-netcore-on-linux-macos) — La versione a modulo singolo di grandi dimensioni di AWS Strumenti per PowerShell. Tutti i AWS servizi sono supportati da questo unico modulo di grandi dimensioni.
**Nota**  
Tieni presente che il singolo modulo potrebbe essere troppo grande per essere utilizzato con le funzioni [AWS Lambda](https://aws.amazon.com/lambda/). Utilizza invece la versione modulare mostrata in precedenza.

 L'impostazione di una di queste versioni su un computer su cui è in esecuzione Linux o macOS comporta le seguenti attività, descritte in dettaglio più avanti in questo argomento:

1. Installa PowerShell Core 6.0 o versione successiva su un sistema supportato.

1. Dopo aver installato PowerShell Core, inizia PowerShell eseguendolo `pwsh` nella shell del sistema.

1. Installa una delle due `AWS.Tools` o AWSPower Shell. NetCore.

1. Esegui il `Import-Module` cmdlet appropriato per importare il modulo nella sessione PowerShell.

1. Esegui il cmdlet [Initialize- AWSDefault Configuration per fornire le](https://docs.aws.amazon.com/powershell/v4/reference/items/Initialize-AWSDefaultConfiguration.html) tue credenziali. AWS 

## Prerequisiti
<a name="prerequisites"></a>

Per eseguire AWS Tools for PowerShell Core, sul computer deve essere in esecuzione PowerShell Core 6.0 o versione successiva. 
+ Per un elenco delle versioni supportate della piattaforma Linux e per informazioni su come installare la versione più recente di PowerShell su un computer basato su Linux, vedi [Installazione PowerShell su Linux sul sito Web](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux) di Microsoft. Alcuni sistemi operativi basati su Linux, ad esempio Arch, Kali e Raspbian non sono supportati ufficialmente, ma hanno vari livelli di supporto dalla comunità.
+ Per informazioni sulle versioni di macOS supportate e su come installare la versione più recente di su PowerShell macOS, consulta Installazione [su PowerShell macOS sul sito Web](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos) di Microsoft.

## Installazione di `AWS.Tools` su Linux o macOS
<a name="install-aws.tools-on-linux-macos"></a>

È possibile installare la versione modulare di AWS Strumenti per PowerShell su computer che PowerShell eseguono Core 6.0 o versione successiva. Per informazioni su come installare PowerShell Core, vedi [Installazione di varie versioni PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) sul PowerShell sito Web di Microsoft. 

È possibile installare `AWS.Tools` in uno dei tre modi:
+ Utilizzo dei cmdlet nel modulo `AWS.Tools.Installer`. Questo modulo semplifica l'installazione e l'aggiornamento di altri `AWS.Tools` moduli. `AWS.Tools.Installer`richiede `PowerShellGet` e ne scarica e installa automaticamente una versione aggiornata. `AWS.Tools.Installer`mantiene automaticamente sincronizzate le versioni del modulo. Quando si installa o si esegue l'aggiornamento a una versione più recente di un modulo, i cmdlet inclusi aggiornano `AWS.Tools.Installer` automaticamente tutti gli altri `AWS.Tools` moduli alla stessa versione.

  Questo metodo è descritto nella procedura che segue.
+ Scaricando i moduli da `[AWS.Tools.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWS.Tools.zip)` ed estraendoli in una delle directory dei moduli. È possibile scoprire le directory dei moduli stampando il valore della variabile `$Env:PSModulePath`.
+ Installazione di ogni modulo di servizio dalla PowerShell Galleria utilizzando il `Install-Module` cmdlet.

**Per installare `AWS.Tools` su Linux o macOS utilizzando il modulo `AWS.Tools.Installer`**

1. Avvia una sessione PowerShell Core eseguendo il comando seguente.

   ```
   $ pwsh
   ```
**Nota**  
Ti consigliamo di *non lavorare* PowerShell come amministratore con autorizzazioni elevate, tranne quando richiesto dall'attività in questione. Ciò è dovuto al potenziale rischio per la sicurezza ed è in contrasto con il principio del privilegio minimo.

1. Per installare il pacchetto `AWS.Tools` modularizzato utilizzando il modulo `AWS.Tools.Installer`, eseguire il seguente comando.

   ```
   PS > Install-Module -Name AWS.Tools.Installer
   
   Untrusted repository
   You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure
    you want to install the modules from 'PSGallery'?
   [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): y
   ```

   Se ricevi una notifica in cui è indicato che il repository non è attendibile, ti viene chiesto se vuoi installarlo comunque. Inserisci **y** per consentire l' PowerShell installazione del modulo. Per evitare il prompt e installare il modulo senza dover considerare attendibile il repository, puoi eseguire il seguente comando.

   ```
   PS > Install-Module -Name AWS.Tools.Installer -Force
   ```

1. Ora puoi installare il modulo per ogni servizio che desideri utilizzare. Ad esempio, il seguente comando installa i moduli Amazon EC2 e Amazon S3. Questo comando installa anche tutti i moduli dipendenti necessari per il funzionamento del modulo specificato. Ad esempio, quando installi il primo modulo di servizio `AWS.Tools`, viene installato anche `AWS.Tools.Common`. Si tratta di un modulo condiviso richiesto da tutti i moduli AWS di servizio. Rimuove anche le versioni precedenti dei moduli e aggiorna altri moduli alla stessa versione più recente.

   ```
   PS > Install-AWSToolsModule AWS.Tools.EC2,AWS.Tools.S3 -CleanUp
   Confirm
   Are you sure you want to perform this action?
     Performing the operation "Install-AWSToolsModule" on target "AWS Tools version 4.0.0.0".
     [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):
   
     Installing module AWS.Tools.Common version 4.0.0.0
     Installing module AWS.Tools.EC2 version 4.0.0.0
     Installing module AWS.Tools.Glacier version 4.0.0.0
     Installing module AWS.Tools.S3 version 4.0.0.0
   
     Uninstalling AWS.Tools version 3.3.618.0
     Uninstalling module AWS.Tools.Glacier
     Uninstalling module AWS.Tools.S3
     Uninstalling module AWS.Tools.SimpleNotificationService
     Uninstalling module AWS.Tools.SQS
     Uninstalling module AWS.Tools.Common
   ```
**Nota**  
Il `Install-AWSToolsModule` cmdlet scarica tutti i moduli richiesti dal file `PSRepository` denominato `PSGallery` ([https://www.powershellgallery.com/](https://www.powershellgallery.com/)) e considera il repository come una fonte attendibile. Usa il comando `Get-PSRepository -Name PSGallery` per ulteriori informazioni su `PSRepository`.

   Il comando precedente installa i moduli nelle directory predefinite del sistema. Le directory effettive dipendono dalla distribuzione e dalla versione del sistema operativo e dalla versione installata. PowerShell Ad esempio, se avete installato PowerShell 7 su un sistema simile a RHEL, molto probabilmente i moduli predefiniti si trovano in `/opt/microsoft/powershell/7/Modules` (or`$PSHOME/Modules`) e i moduli utente si trovano molto probabilmente in. `~/.local/share/powershell/Modules` Per ulteriori informazioni, vedere [Installazione PowerShell su Linux](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-linux) sul PowerShell sito Web Microsoft. Per vedere dove sono installati i moduli, esegui il comando seguente:

   ```
   PS > Get-Module -ListAvailable
   ```

   Per installare altri moduli, esegui comandi simili con i nomi dei moduli appropriati, come si trova nella [PowerShell Galleria](https://www.powershellgallery.com/packages?q=aws).

## Installa AWSPower Shell. NetCore su Linux o macOS
<a name="install-netcore-on-linux-macos"></a>

Per eseguire l'aggiornamento a una versione più recente di AWSPower Shell. NetCore, segui le istruzioni riportate in[Aggiornamento di AWS Strumenti per PowerShell su Linux o macOS](#pstools-updating-linux). Disinstalla le versioni precedenti di AWSPower Shell. NetCore prima.

Puoi installare AWSPower Shell. NetCore in due modi:
+ Scaricando il modulo da `[AWSPowerShell.NetCore.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWSPowerShell.NetCore.zip)` ed estraendolo in una delle directory del modulo. È possibile scoprire le directory dei moduli stampando il valore della variabile `$Env:PSModulePath`.
+ Installazione dalla PowerShell Galleria utilizzando il `Install-Module` cmdlet come descritto nella procedura seguente.

**Per installare Shell AWSPower. NetCore su Linux o macOS utilizzando il cmdlet Install-Module**

Avviare una sessione PowerShell Core eseguendo il comando seguente.

```
$ pwsh
```

**Nota**  
Ti consigliamo di *non* iniziare PowerShell eseguendo `sudo pwsh` l'esecuzione PowerShell con diritti di amministratore elevati. Ciò è dovuto al potenziale rischio per la sicurezza ed è in contrasto con il principio del privilegio minimo.

Per installare la AWSPower Shell. NetCore pacchetto a modulo singolo dalla PowerShell Galleria, esegui il seguente comando.

```
PS > Install-Module -Name AWSPowerShell.NetCore

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure
 you want to install the modules from 'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): y
```

Se ricevi una notifica in cui è indicato che il repository non è attendibile, ti viene chiesto se vuoi installarlo comunque. Inserisci **y** per consentire PowerShell l'installazione del modulo. Per evitare il prompt senza dover considerare attendibile il repository, puoi eseguire il comando riportato qui di seguito.

```
PS > Install-Module -Name AWSPowerShell.NetCore -Force
```

Non è necessario eseguire questo comando come root, a meno che non si desideri installarlo AWS Strumenti per PowerShell per tutti gli utenti di un computer. Per fare ciò, esegui il comando seguente in una PowerShell sessione con cui hai iniziato`sudo pwsh`.

```
PS > Install-Module -Scope AllUsers -Name AWSPowerShell.NetCore -Force
```

## Esecuzione di uno script
<a name="enable-script-execution"></a>

Il comando `Set-ExecutionPolicy` non è disponibile sui sistemi non Windows. Puoi eseguire`Get-ExecutionPolicy`, il che dimostra che l'impostazione predefinita dei criteri di esecuzione in PowerShell Core in esecuzione su sistemi non Windows è`Unrestricted`. Per ulteriori informazioni, consulta [Informazioni sulle policy di esecuzione](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-5.1) sul sito Web Microsoft Technet.

 Poiché `PSModulePath` include la posizione della directory del AWS modulo, il `Get-Module -ListAvailable` cmdlet mostra il modulo installato.

**`AWS.Tools`**

```
PS > Get-Module -ListAvailable

    Directory: /Users/username/.local/share/powershell/Modules

ModuleType Version    Name                                PSEdition ExportedCommands
---------- -------    ----                                --------- ----------------
Binary     3.3.563.1  AWS.Tools.Common                    Desk      {Clear-AWSHistory, Set-AWSHistoryConfiguration, Initialize-AWSDefaultConfiguration, Clear-AWSDefaultConfigurat…
```

**AWSPowerShell. NetCore**

```
PS > Get-Module -ListAvailable

Directory: /Users/username/.local/share/powershell/Modules

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Binary     3.3.563.1  AWSPowerShell.NetCore
```

## Configurare una PowerShell console per utilizzare AWS Tools for PowerShell Core (AWSPowerShell. NetCore Solo)
<a name="pstools-config-ps-window"></a>

PowerShell Core in genere carica automaticamente i moduli ogni volta che si esegue un cmdlet nel modulo. Ma questo non funziona per AWSPower Shell. NetCore a causa delle sue grandi dimensioni. Per iniziare a eseguire AWSPower Shell. NetCore cmdlet, è necessario innanzitutto eseguire il `Import-Module AWSPowerShell.NetCore` comando. Questo non è necessario per i cmdlet nei moduli `AWS.Tools`.

## Inizializza la tua sessione PowerShell
<a name="linux-config-init"></a>

Quando si avvia PowerShell su un sistema basato su Linux o macOS dopo aver installato il AWS Strumenti per PowerShell, è necessario eseguire [Initialize- AWSDefault Configuration](https://docs.aws.amazon.com/powershell/v4/reference/items/Initialize-AWSDefaultConfiguration.html) per specificare la chiave di accesso da utilizzare. AWS Per ulteriori informazioni su `Initialize-AWSDefaultConfiguration`, consultare [Utilizzo delle AWS credenziali](specifying-your-aws-credentials.md).

**Nota**  
Nelle versioni precedenti (precedenti alla 3.3.96.0) di, questo cmdlet era denominato. AWS Strumenti per PowerShell`Initialize-AWSDefaults`

## Controllo delle versioni
<a name="pstools-versioning"></a>

AWS rilascia AWS Strumenti per PowerShell periodicamente nuove versioni per supportare nuovi servizi e funzionalità. AWS Per determinare la versione di AWS Strumenti per PowerShell che è stata installata, eseguire il AWSPower ShellVersion cmdlet [Get-](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-AWSPowerShellVersion.html).

Esempio:

```
PS > Get-AWSPowerShellVersion

AWS Tools for PowerShell
Version 4.1.849
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Amazon Web Services SDK for .NET
Core Runtime Version 3.7.402.75
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Release notes: https://github.com/aws/aws-tools-for-powershell/blob/v4.1/changelogs/CHANGELOG.ALL.md

This software includes third party software subject to the following copyrights:
- Logging from log4net, Apache License
[http://logging.apache.org/log4net/license.html]
```

Per visualizzare un elenco dei AWS servizi supportati nella versione corrente degli strumenti, aggiungere il `-ListServiceVersionInfo` parametro a un cmdlet [Get- AWSPower ShellVersion](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-AWSPowerShellVersion.html).

Per determinare la versione in esecuzione, immettere `$PSVersionTable` per visualizzare il contenuto della variabile `$PSVersionTable` [automatica](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-6). PowerShell 

Esempio:

```
PS > $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.2.2
PSEdition                      Core
GitCommitId                    6.2.2
OS                             Darwin 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
```

## Aggiornamento di AWS Strumenti per PowerShell su Linux o macOS
<a name="pstools-updating-linux"></a>

Periodicamente, man mano che AWS Strumenti per PowerShell vengono rilasciate versioni aggiornate di, è necessario aggiornare la versione in esecuzione localmente. 

### Aggiorna i moduli modularizzati `AWS.Tools`
<a name="update-aws.tools-all-systems"></a>

Per aggiornare i `AWS.Tools` moduli alla versione più recente, esegui il seguente comando:

```
PS > Update-AWSToolsModule -CleanUp
```

Questo comando aggiorna tutti i moduli `AWS.Tools` attualmente installati e, per i moduli che sono stati aggiornati correttamente, rimuove le versioni precedenti.

**Nota**  
Il `Update-AWSToolsModule` cmdlet scarica tutti i moduli dal file `PSRepository` denominato `PSGallery` ([https://www.powershellgallery.com/](https://www.powershellgallery.com/)) e lo considera una fonte attendibile. Usa il comando `Get-PSRepository -Name PSGallery` per ulteriori informazioni su `PSRepository`.

### Aggiorna gli strumenti per Core PowerShell
<a name="update-netcore-all-systems"></a>

Esegui il `Get-AWSPowerShellVersion` cmdlet per determinare la versione in esecuzione e confrontala con la versione di Tools for Windows PowerShell disponibile sul sito Web [PowerShell Gallery](https://www.powershellgallery.com/packages/AWSPowerShell). Consigliamo di controllare ogni due o tre settimane. Il supporto per nuovi comandi e AWS servizi è disponibile solo dopo l'aggiornamento a una versione con tale supporto.

Prima di installare una versione più recente di AWSPower Shell. NetCore, disinstalla il modulo esistente. Chiudi tutte PowerShell le sessioni aperte prima di disinstallare il pacchetto esistente. Per disinstallare il pacchetto, eseguire il comando seguente.

```
PS > Uninstall-Module -Name AWSPowerShell.NetCore -AllVersions
```

Dopo aver disinstallato il pacchetto, installa il modulo aggiornato eseguendo il comando riportato qui di seguito.

```
PS > Install-Module -Name AWSPowerShell.NetCore
```

Dopo l'installazione, esegui il comando `Import-Module AWSPowerShell.NetCore` per caricare i cmdlet aggiornati nella sessione PowerShell .

## Informazioni correlate
<a name="pstools-seealso-setup"></a>
+  [Inizia con AWS Tools for Windows PowerShell](pstools-getting-started.md) 
+  [Lavora con AWS i servizi in AWS Strumenti per PowerShell](pstools-using.md) 

# Migrazione dalla AWS Strumenti per PowerShell versione 3.3 alla versione 4
<a name="v4migration"></a>

AWS Strumenti per PowerShell la versione 4 è un aggiornamento retrocompatibile alla versione 3.3. AWS Strumenti per PowerShell Aggiunge miglioramenti significativi pur mantenendo il comportamento dei cmdlet esistenti. 

Gli script esistenti dovrebbero continuare a funzionare dopo l'aggiornamento alla nuova versione, ma si consiglia di verificarli accuratamente prima di eseguire l'aggiornamento agli ambienti di produzione.

Questa sezione descrive le modifiche e spiega come potrebbero influire sugli script.

## Nuova versione `AWS.Tools` completamente modularizzata
<a name="migrate-aws-tools"></a>

La Shell. AWSPower NetCore e i pacchetti AWSPower Shell erano «monolitici». Ciò significava che tutti i AWS servizi erano supportati nello stesso modulo, il che lo rendeva molto grande e cresceva man mano che venivano aggiunti nuovi AWS servizi e funzionalità. Il nuovo `AWS.Tools` pacchetto è suddiviso in moduli più piccoli che offrono la flessibilità di scaricare e installare solo quelli necessari per i AWS servizi utilizzati. Il pacchetto include un modulo `AWS.Tools.Common` condiviso richiesto da tutti gli altri moduli e un modulo `AWS.Tools.Installer` che semplifica l'installazione, l'aggiornamento e la rimozione dei moduli secondo necessità.

Ciò consente anche l'importazione automatica dei cmdlet alla prima chiamata, senza dover effettuare la prima chiamata `Import-module`. Tuttavia, per interagire con gli oggetti.NET associati prima di chiamare un cmdlet, è comunque necessario chiamare `Import-Module` per comunicare i PowerShell tipi.NET pertinenti. 

Ad esempio, il comando seguente ha un riferimento a `Amazon.EC2.Model.Filter`. Questo tipo di riferimento non può attivare l'importazione automatica, quindi è necessario chiamare prima `Import-Module` o il comando fallisce.

```
PS > $filter = [Amazon.EC2.Model.Filter]@{Name="vpc-id";Values="vpc-1234abcd"}
  InvalidOperation: Unable to find type [Amazon.EC2.Model.Filter].
```

```
PS > Import-Module AWS.Tools.EC2
PS > $filter = [Amazon.EC2.Model.Filter]@{Name="vpc-id";Values="vpc-1234abcd"}
PS > Get-EC2Instance -Filter $filter -Select Reservations.Instances.InstanceId
  i-0123456789abcdefg
  i-0123456789hijklmn
```

## Nuovo cmdlet `Get-AWSService`
<a name="migrate-get-awsservice"></a>

Per facilitare l'individuazione dei nomi dei moduli per ogni AWS servizio nell'`AWS.Tools`insieme di moduli, è possibile utilizzare il `Get-AWSService` cmdlet.

```
PS > Get-AWSService
  Service : ACMPCA
  CmdletNounPrefix : PCA
  ModuleName : AWS.Tools.ACMPCA
  SDKAssemblyVersion : 3.3.101.56
  ServiceName : Certificate Manager Private Certificate Authority

  Service : AlexaForBusiness
  CmdletNounPrefix : ALXB
  ModuleName : AWS.Tools.AlexaForBusiness
  SDKAssemblyVersion : 3.3.106.26
  ServiceName : Alexa For Business
  ...
```

## Nuovo parametro `-Select` per controllare l'oggetto restituito da un cmdlet
<a name="migrate-select"></a>

La maggior parte dei cmdlet nella versione 4 supporta un nuovo parametro `-Select`. Ogni cmdlet richiama il AWS servizio automaticamente utilizzando APIs . AWS SDK per .NET Il AWS Strumenti per PowerShell client converte quindi la risposta in un oggetto che è possibile utilizzare negli PowerShell script e reindirizzare ad altri comandi. A volte l' PowerShell oggetto finale ha più campi o proprietà nella risposta originale del necessario e altre volte potresti volere che l'oggetto includa campi o proprietà della risposta che non sono presenti per impostazione predefinita. Il parametro `-Select` consente di specificare gli elementi inclusi nell'oggetto.NET restituito dal cmdlet.

Ad esempio, il [Get-S3Object](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-S3Object.html)cmdlet richiama l'operazione SDK Amazon S3. [ListObjects](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/index.html?page=S3/MS3ListObjectsListObjectsRequest.html) Tale operazione restituisce un oggetto. [ListObjectsResponse](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/index.html?page=S3/MS3ListObjectsListObjectsRequest.h) Tuttavia, per impostazione predefinita, il `Get-S3Object` cmdlet restituisce all'utente solo l'`S3Objects`elemento della risposta SDK. PowerShell Nell'esempio seguente, tale oggetto è un array con due elementi.

```
PS > Get-S3Object -BucketName amzn-s3-demo-bucket

ETag : "01234567890123456789012345678901111"
BucketName : amzn-s3-demo-bucket
Key : file1.txt
LastModified : 9/30/2019 1:31:40 PM
Owner : Amazon.S3.Model.Owner
Size : 568
StorageClass : STANDARD

ETag : "01234567890123456789012345678902222"
BucketName : amzn-s3-demo-bucket
Key : file2.txt
LastModified : 7/15/2019 9:36:54 AM
Owner : Amazon.S3.Model.Owner
Size : 392
StorageClass : STANDARD
```

Nella AWS Strumenti per PowerShell versione 4, è possibile specificare di `-Select *` restituire l'oggetto di risposta.NET completo restituito dalla chiamata API SDK.

```
PS > Get-S3Object -BucketName amzn-s3-demo-bucket -Select *
  IsTruncated    : False
  NextMarker     :
  S3Objects      : {file1.txt, file2.txt}
  Name           : amzn-s3-demo-bucket
  Prefix         :
  MaxKeys        : 1000
  CommonPrefixes : {}
  Delimiter      :
```

È inoltre possibile specificare il percorso della proprietà nidificata specifica desiderata. L'esempio seguente restituisce solo la proprietà `Key` di ciascun elemento della matrice `S3Objects`.

```
PS > Get-S3Object -BucketName amzn-s3-demo-bucket -Select S3Objects.Key
file1.txt
file2.txt
```

In alcune situazioni può essere utile restituire un parametro cmdlet. Tale operazione può essere eseguita con `-Select ^ParameterName`. Questa funzione sostituisce il parametro `-PassThru`, che è ancora disponibile ma deprecato. 

```
PS > Get-S3Object -BucketName amzn-s3-demo-bucket -Select S3Objects.Key |
>> Write-S3ObjectTagSet -Select ^Key -BucketName amzn-s3-demo-bucket -Tagging_TagSet @{ Key='key'; Value='value'}
  file1.txt
  file2.txt
```

[L' argomento di riferimento](https://docs.aws.amazon.com/powershell/v4/reference/) per ogni cmdlet consente di identificare se supporta il parametro `-Select`.

## Limitazione più coerente del numero di elementi nell'output
<a name="migrate-iterate"></a>

Le versioni precedenti di AWS Strumenti per PowerShell consentivano di utilizzare il `-MaxItems` parametro per specificare il numero massimo di oggetti restituiti nell'output finale.

Questo comportamento è stato rimosso da `AWS.Tools`.

Questo comportamento è obsoleto in Shell. AWSPower NetCore e AWSPower Shell, e verranno rimossi da tali versioni in una versione futura.

Se l'API del servizio sottostante supporta un parametro `MaxItems`, è ancora disponibile e funziona come specificato dall'API. Ma non ha più il comportamento ulteriore di limitare il numero di elementi restituiti nell'output del cmdlet.

Per limitare il numero di elementi restituiti nell'output finale, reindirizzate l'output al `Select-Object` cmdlet e specificate il `-First n` parametro, dove *n* è il numero massimo di elementi da includere nell'output finale.

```
PS > Get-S3ObjectV2 -BucketName amzn-s3-demo-bucket -Select S3Objects.Key | select -first 2
file1.txt
file2.txt
```

Non tutti i AWS servizi sono supportati `-MaxItems` allo stesso modo, quindi questo elimina l'incoerenza e i risultati imprevisti che a volte si verificavano. Inoltre, `-MaxItems` in combinazione con il nuovo parametro [`-Select`](#migrate-select) a volte potrebbe portare a risultati confusi.

## Parametri di flusso più facili da usare
<a name="migrate-streamparam"></a>

Parametri di tipo `Stream` o `byte[]` possono ora accettare valori `string`, `string[]` o `FileInfo`.

Ad esempio, è possibile utilizzare uno dei seguenti esempi.

```
PS > Invoke-LMFunction -FunctionName MyTestFunction -PayloadStream '{
>> "some": "json"
>> }'
```

```
PS > Invoke-LMFunction -FunctionName MyTestFunction -PayloadStream (ls .\some.json)
```

```
PS > Invoke-LMFunction -FunctionName MyTestFunction -PayloadStream @('{', '"some": "json"', '}')
```

 AWS Strumenti per PowerShell converte tutte le stringhe `byte[]` utilizzando la codifica UTF-8.

## Estendere la pipe in base al nome della proprietà
<a name="migrate-pipes"></a>

Per rendere l'esperienza utente più coerente, è ora possibile passare l'input della pipeline specificando il nome della proprietà per *qualsiasi* parametro. 

Nell'esempio seguente viene creato un oggetto personalizzato con proprietà con nomi corrispondenti ai nomi dei parametri del cmdlet di destinazione. Quando viene eseguito il cmdlet, vengono automaticamente consumate tali proprietà come parametri.

```
PS > [pscustomobject] @{ BucketName='amzn-s3-demo-bucket'; Key='file1.txt'; PartNumber=1 } | Get-S3ObjectMetadata
```

**Nota**  
Alcune proprietà lo supportavano nelle versioni precedenti di. AWS Strumenti per PowerShell La versione 4 rende questo più coerente abilitandolo per *tutti* i parametri.

## Parametri comuni statici
<a name="migrate-staticcommonparams"></a>

Per migliorare la coerenza nella versione 4.0 di AWS Strumenti per PowerShell, tutti i parametri sono statici.

Nelle versioni precedenti di AWS Strumenti per PowerShell, alcuni parametri comuni come`AccessKey`,, o `SecretKey``ProfileName`, erano [dinamici `Region`](https://docs.microsoft.com/dotnet/api/system.management.automation.idynamicparameters), mentre tutti gli altri parametri erano statici. Ciò potrebbe creare problemi perché PowerShell associa i parametri statici prima di quelli dinamici. Ad esempio, supponiamo che tu abbia eseguito il seguente comando.

```
PS > Get-EC2Region -Region us-west-2
```

Le versioni precedenti di PowerShell associavano il valore `us-west-2` al parametro `-RegionName` statico anziché al parametro `-Region` dinamico. Probabilmente, questo potrebbe confondere gli utenti.

## `AWS.Tools` Dichiara e applica i parametri obbligatori
<a name="migrate-mandatoryparams"></a>

I moduli `AWS.Tools.*` ora dichiarano e applicano parametri cmdlet obbligatori. Quando un AWS servizio dichiara che è necessario un parametro di un'API, PowerShell richiede il parametro del cmdlet corrispondente se non lo si è specificato. Questo vale solo per `AWS.Tools`. Per garantire la compatibilità con le versioni precedenti, ciò non si applica a Shell. AWSPower NetCore o AWSPower Shell.

## Tutti i parametri sono “nullable”
<a name="migrate-nullableparams"></a>

È ora possibile assegnare `$null` ai parametri del tipo di valore (numeri e date). Questa modifica non dovrebbe influire sugli script esistenti. Ciò consente di ignorare la richiesta di un parametro obbligatorio. I parametri obbligatori sono applicati solo in `AWS.Tools`.

Se viene eseguito l’esempio seguente utilizzando la versione 4, il medesimo ignora effettivamente la convalida lato client perché si fornisce un «valore» per ogni parametro obbligatorio. Tuttavia, la chiamata al servizio API di Amazon EC2 non riesce perché il AWS servizio richiede ancora tali informazioni.

```
PS > Get-EC2InstanceAttribute -InstanceId $null -Attribute $null
WARNING: You are passing $null as a value for parameter Attribute which is marked as required.
In case you believe this parameter was incorrectly marked as required, report this by opening 
an issue at [https://github.com/aws/aws-tools-for-powershell/issues](https://github.com/aws/aws-tools-for-powershell/issues).
WARNING: You are passing $null as a value for parameter InstanceId which is marked as required.
In case you believe this parameter was incorrectly marked as required, report this by opening
an issue at [https://github.com/aws/aws-tools-for-powershell/issues](https://github.com/aws/aws-tools-for-powershell/issues).

Get-EC2InstanceAttribute : The request must contain the parameter instanceId
```

## Rimozione di funzionalità precedentemente deprecate
<a name="migrate-removeprevdeprecated"></a>

Le seguenti funzionalità erano obsolete nelle versioni precedenti di AWS Strumenti per PowerShell e sono state rimosse nella versione 4:
+ Rimosso il parametro `-Terminate` dal cmdlet `Stop-EC2Instance`. Usare invece `Remove-EC2Instance`.
+ È stato rimosso il `-ProfileName` parametro dal cmdlet Clear-. AWSCredential Usare invece `Remove-AWSCredentialProfile`.
+ Rimossi i cmdlet `Import-EC2Instance` e `Import-EC2Volume`.