

Alat AWS untuk PowerShell V4 telah memasuki mode pemeliharaan.

Kami menyarankan Anda bermigrasi ke [Alat AWS untuk PowerShell V5](https://docs.aws.amazon.com/powershell/v5/userguide/). Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat [pengumuman mode pemeliharaan](https://aws.amazon.com/blogs/developer/aws-tools-for-powershell-v4-maintenance-mode-announcement/) kami.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Instalasi Alat AWS untuk PowerShell
<a name="pstools-getting-set-up"></a>

Agar berhasil menginstal dan menggunakan Alat AWS untuk PowerShell cmdlet, lihat langkah-langkah dalam topik berikut.

**Topics**
+ [Menginstal pada Windows](pstools-getting-set-up-windows.md)
+ [Memasang pada Linux atau macOS](pstools-getting-set-up-linux-mac.md)
+ [Migrasi dari Alat AWS untuk PowerShell Versi 3.3 ke Versi 4](v4migration.md)

# Menginstal Alat AWS untuk PowerShell pada Windows
<a name="pstools-getting-set-up-windows"></a>

Komputer berbasis Windows dapat menjalankan salah satu opsi Alat AWS untuk PowerShell paket:
+ [**`AWS.Tools`**](#ps-installing-awstools)- Versi termodulasi dari. Alat AWS untuk PowerShell Setiap AWS layanan didukung oleh modul kecil individualnya sendiri, dengan modul dukungan bersama `AWS.Tools.Common` dan`AWS.Tools.Installer`.
+ [**AWSPowerCangkang. NetCore**](#ps-installing-awspowershellnetcore) - Versi tunggal, modul besar dari. Alat AWS untuk PowerShell Semua AWS layanan didukung oleh modul tunggal dan besar ini.
**catatan**  
Ketahuilah bahwa modul tunggal mungkin terlalu besar untuk digunakan dengan [AWS Lambda](https://aws.amazon.com/lambda/)fungsi. Sebagai gantinya, gunakan versi termodulasi yang ditunjukkan di atas.
+ [**AWSPowerShell**](#ps-installing-awswindowspowershell) - Versi lama khusus Windows, tunggal, modul besar dari. Alat AWS untuk PowerShell Semua AWS layanan didukung oleh modul tunggal dan besar ini.

Paket yang Anda pilih tergantung pada rilis dan edisi Windows yang sedang Anda jalankan. 

**catatan**  
 Alat AWS untuk PowerShell Ini diinstal secara default pada semua Gambar Mesin Amazon berbasis Windows ()AMIs. Opsi yang diinstal tergantung pada AMI. Banyak yang AMIs memiliki modul AWSPower Shell, tetapi beberapa mungkin memiliki opsi yang berbeda. Misalnya, Amazon EC2 AMIs untuk Windows Server 2025 menggunakan `AWS.Tools` opsi modular.

Menyiapkan Alat AWS untuk PowerShell melibatkan tugas-tugas tingkat tinggi berikut, dijelaskan secara rinci dalam topik ini.

1. Instal opsi Alat AWS untuk PowerShell paket yang sesuai untuk lingkungan Anda.

1. Verifikasi bahwa eksekusi skrip diaktifkan dengan menjalankan cmdlet `Get-ExecutionPolicy`.

1. Impor Alat AWS untuk PowerShell modul ke PowerShell sesi Anda.

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

Versi yang lebih baru PowerShell, termasuk PowerShell Core, tersedia sebagai unduhan dari Microsoft di [Menginstal berbagai versi PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) di situs Web Microsoft.

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

Anda dapat menginstal versi termodulasi Alat AWS untuk PowerShell pada komputer yang menjalankan Windows dengan Windows PowerShell 5.1, atau PowerShell Core 6.0 atau yang lebih baru. Untuk informasi tentang cara menginstal PowerShell Core, lihat [Menginstal berbagai versi PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) di situs Web Microsoft.

Anda dapat memasang `AWS.Tools` dengan memilih satu dari tiga cara:
+ Menggunakan cmdlet di modul `AWS.Tools.Installer`. Modul ini menyederhanakan instalasi dan pembaruan `AWS.Tools` modul lainnya. `AWS.Tools.Installer`membutuhkan`PowerShellGet`, dan secara otomatis mengunduh dan menginstal versi yang diperbarui. `AWS.Tools.Installer`secara otomatis membuat versi modul Anda tetap sinkron. Saat Anda menginstal atau memperbarui ke versi yang lebih baru dari satu modul, cmdlet secara `AWS.Tools.Installer` otomatis memperbarui semua `AWS.Tools` modul Anda yang lain ke versi yang sama.

  Metode ini dijelaskan dalam prosedur berikut.
+ Mengunduh modul dari `[AWS.Tools.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWS.Tools.zip)` dan mengekstraknya di salah satu folder modul. Anda dapat menemukan folder modul Anda dengan menampilkan nilai variabel `PSModulePath` lingkungan.
**Awas**  
Setelah mengunduh file ZIP dan sebelum mengekstraksi konten, Anda mungkin perlu membuka blokir. Ini biasanya dilakukan dengan membuka properti file, melihat tab **Umum**, dan memilih kotak centang **Buka Blokir** jika ada.  
Jika file ZIP perlu dibuka blokir tetapi Anda tidak melakukannya, Anda mungkin menerima kesalahan yang mirip dengan yang berikut: “Modul Import: Tidak dapat memuat file atau perakitan”.
+ Menginstal setiap modul layanan dari PowerShell Galeri menggunakan `Install-Module` cmdlet.

**Untuk menginstal `AWS.Tools` pada Windows menggunakan `AWS.Tools.Installer` modul**

1. Mulai PowerShell sesi.
**catatan**  
Kami menyarankan agar Anda *tidak* menjalankan PowerShell sebagai administrator dengan izin yang ditinggikan kecuali jika diperlukan oleh tugas yang ada. Hal ini karena potensi risiko keamanan dan tidak sesuai dengan prinsip batasan akses yang paling rendah.

1. Untuk menginstal paket `AWS.Tools` termodulasi, jalankan perintah berikut.

   ```
   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
   ```

   Jika Anda diberi tahu bahwa repositori "tidak terpercaya", Anda akan ditanya apakah Anda tetap ingin menginstalnya. Masukkan **y** untuk memungkinkan PowerShell untuk menginstal modul. Untuk menghindari prompt dan menginstal modul tanpa mempercayai repositori, Anda dapat menjalankan perintah dengan parameter `-Force`.

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

1. Anda sekarang dapat menginstal modul untuk setiap AWS layanan yang ingin Anda gunakan dengan menggunakan `Install-AWSToolsModule` cmdlet. Misalnya, perintah berikut menginstal modul Amazon EC2 dan Amazon S3. Perintah ini juga menginstal setiap modul tergantung yang diperlukan untuk modul tertentu yang akan dikerjakan. Misalnya, saat Anda menginstal modul layanan `AWS.Tools`, maka secara otomatis akan menginstal `AWS.Tools.Common`. Ini adalah modul bersama yang dibutuhkan oleh semua modul AWS layanan. Tindakan ini juga akan menghapus versi modul yang lebih lama, dan memperbarui modul lain ke versi yang sama barunya.

   ```
   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
   ```
**catatan**  
`Install-AWSToolsModule`Cmdlet mengunduh semua modul yang diminta dari `PSRepository` nama `PSGallery` ([https://www.powershellgallery.com/](https://www.powershellgallery.com/)) dan menganggapnya sebagai sumber tepercaya. Gunakan perintah `Get-PSRepository -Name PSGallery` untuk informasi lebih lanjut tentang `PSRepository` ini.

   Secara default, perintah sebelumnya menginstal modul ke dalam `%USERPROFILE%\Documents\WindowsPowerShell\Modules` folder. Untuk menginstal Alat AWS untuk PowerShell untuk semua pengguna komputer, Anda harus menjalankan perintah berikut dalam PowerShell sesi yang Anda mulai sebagai administrator. Misalnya, perintah berikut menginstal modul IAM ke `%ProgramFiles%\WindowsPowerShell\Modules` folder yang dapat diakses oleh semua pengguna.

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

   Untuk menginstal modul lain, jalankan perintah serupa dengan nama modul yang sesuai, seperti yang ditemukan di [PowerShell Galeri](https://www.powershellgallery.com/packages?q=aws).

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

Anda dapat menginstal AWSPower Shell. NetCore pada komputer yang menjalankan Windows dengan PowerShell versi 3 hingga 5.1, atau PowerShell Core 6.0 atau yang lebih baru. Untuk informasi tentang cara menginstal PowerShell Core, lihat [Menginstal berbagai versi PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) di PowerShell situs web Microsoft.

Anda dapat menginstal AWSPower Shell. NetCore Dalam salah satu dari dua cara
+ Mengunduh modul dari [AWSPowerShell. NetCore.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWSPowerShell.NetCore.zip) dan mengekstraknya di salah satu direktori modul. Anda dapat menemukan direktori modul Anda dengan menampilkan nilai variabel `PSModulePath` lingkungan.
**Awas**  
Setelah mengunduh file ZIP dan sebelum mengekstraksi konten, Anda mungkin perlu membuka blokir. Ini biasanya dilakukan dengan membuka properti file, melihat tab **Umum**, dan memilih kotak centang **Buka Blokir** jika ada.  
Jika file ZIP perlu dibuka blokir tetapi Anda tidak melakukannya, Anda mungkin menerima kesalahan yang mirip dengan yang berikut: “Modul Import: Tidak dapat memuat file atau perakitan”.
+ Menginstal dari PowerShell Galeri menggunakan `Install-Module` cmdlet, seperti yang dijelaskan dalam prosedur berikut.

**Untuk menginstal AWSPower Shell. NetCore dari PowerShell Galeri menggunakan cmdlet Install-Module**

Untuk menginstal AWSPower Shell. NetCore dari PowerShell Galeri, komputer Anda harus menjalankan PowerShell 5.0 atau lebih baru, atau berjalan [PowerShellGet](https://www.powershellgallery.com/packages/PowerShellGet)pada PowerShell 3 atau lebih baru. Jalankan perintah berikut.

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

Jika Anda menjalankan PowerShell sebagai administrator, perintah sebelumnya akan diinstal Alat AWS untuk PowerShell untuk semua pengguna di komputer. Jika Anda menjalankan PowerShell sebagai pengguna standar tanpa izin administrator, perintah yang sama akan diinstal hanya Alat AWS untuk PowerShell untuk pengguna saat ini.

Untuk menginstal untuk hanya pengguna saat ini ketika pengguna tersebut memiliki izin administrator, jalankan perintah dengan parameter `-Scope CurrentUser` yang ditetapkan, sebagai berikut.

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

Meskipun rilis PowerShell 3.0 dan yang lebih baru biasanya memuat modul ke PowerShell sesi Anda saat pertama kali menjalankan cmdlet di modul, Shell. AWSPower NetCore modul terlalu besar untuk mendukung fungsi ini. Anda harus memuat Shell secara eksplisit. AWSPower NetCore Modul inti ke PowerShell sesi Anda dengan menjalankan perintah berikut.

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

Untuk memuat AWSPower Shell. NetCore modul ke PowerShell sesi secara otomatis, tambahkan perintah itu ke PowerShell profil Anda. Untuk informasi selengkapnya tentang mengedit PowerShell profil Anda, lihat [Tentang Profil](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_profiles) di PowerShell dokumentasi.

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

Anda dapat menginstal AWS Tools for Windows PowerShell dalam salah satu dari dua cara:
+ Mengunduh modul dari [AWSPowerShell.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWSPowerShell.zip) dan mengekstraknya di salah satu direktori modul. Anda dapat menemukan direktori modul Anda dengan menampilkan nilai variabel `PSModulePath` lingkungan.
**Awas**  
Setelah mengunduh file ZIP dan sebelum mengekstraksi konten, Anda mungkin perlu membuka blokir. Ini biasanya dilakukan dengan membuka properti file, melihat tab **Umum**, dan memilih kotak centang **Buka Blokir** jika ada.  
Jika file ZIP perlu dibuka blokir tetapi Anda tidak melakukannya, Anda mungkin menerima kesalahan yang mirip dengan yang berikut: “Modul Import: Tidak dapat memuat file atau perakitan”.
+ Menginstal dari PowerShell Galeri menggunakan `Install-Module` cmdlet seperti yang dijelaskan dalam prosedur berikut.

**Untuk menginstal AWSPower Shell dari PowerShell Galeri menggunakan cmdlet Install-Module**

Anda dapat menginstal AWSPower Shell dari PowerShell Galeri jika Anda menjalankan PowerShell 5.0 atau yang lebih baru, atau telah diinstal [PowerShellGet](https://www.powershellgallery.com/packages/PowerShellGet)pada PowerShell 3 atau yang lebih baru. Anda dapat menginstal dan memperbarui AWSPower Shell dari [PowerShellGaleri](https://www.powershellgallery.com/packages/AWSPowerShell) Microsoft dengan menjalankan perintah berikut.

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

Untuk memuat modul AWSPower Shell ke dalam PowerShell sesi secara otomatis, tambahkan `import-module` cmdlet sebelumnya ke profil Anda PowerShell . Untuk informasi selengkapnya tentang mengedit PowerShell profil Anda, lihat [Tentang Profil](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-6) di PowerShell dokumentasi.

**catatan**  
Alat untuk Windows diinstal PowerShell secara default pada semua Gambar Mesin Amazon berbasis Windows ()AMIs.

## Aktifkan Eksekusi Skrip
<a name="enable-script-execution"></a>

Untuk memuat Alat AWS untuk PowerShell modul, Anda harus mengaktifkan eksekusi PowerShell skrip. Untuk mengaktifkan eksekusi skrip, jalankan cmdlet `Set-ExecutionPolicy` untuk menetapkan kebijakan `RemoteSigned`. Untuk informasi selengkapnya, lihat [Tentang Kebijakan Eksekusi](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies) di situs web Microsoft Technet.

**catatan**  
Ini adalah persyaratan hanya untuk komputer yang menjalankan Windows. Pembatasan keamanan `ExecutionPolicy` tidak ada pada sistem operasi lain.

 **Untuk mengaktifkan eksekusi skrip** 

1. Hak administrator diperlukan untuk menetapkan kebijakan eksekusi. Jika Anda tidak masuk sebagai pengguna dengan hak administrator, buka PowerShell sesi sebagai Administrator. Pilih **Mulai**, lalu pilih **Semua Program**. Pilih **Aksesoris**, lalu pilih **Windows PowerShell**. Klik kanan **Windows PowerShell**, dan pada menu konteks, pilih **Jalankan sebagai administrator**.

1. Di prompt perintah, masukkan perintah berikut.

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

**catatan**  
Pada sistem 64-bit, Anda harus melakukan ini secara terpisah untuk versi 32-bit PowerShell, **Windows PowerShell (x86**).

Jika kebijakan eksekusi tidak disetel dengan benar, PowerShell menampilkan kesalahan berikut setiap kali Anda mencoba menjalankan skrip, seperti profil Anda.

```
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
```

 PowerShell Penginstal Alat untuk Windows secara otomatis memperbarui [PSModulePath](http://msdn.microsoft.com/en-us/library/windows/desktop/dd878326.aspx) untuk menyertakan lokasi direktori yang berisi `AWSPowerShell` modul. 

Karena `PSModulePath` menyertakan lokasi direktori AWS modul, `Get-Module -ListAvailable` cmdlet menunjukkan modul.

```
PS > Get-Module -ListAvailable

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

## Penentuan versi
<a name="pstools-versioning"></a>

AWS merilis versi baru secara Alat AWS untuk PowerShell berkala untuk mendukung AWS layanan dan fitur baru. Untuk menentukan versi Tools yang telah Anda instal, jalankan [Get- AWSPower ShellVersion](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-AWSPowerShellVersion.html) cmdlet.

Misalnya:

```
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]
```

Anda juga dapat menambahkan `-ListServiceVersionInfo` parameter ke AWSPower ShellVersion perintah [Get-](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-AWSPowerShellVersion.html) untuk melihat daftar AWS layanan yang didukung dalam versi alat saat ini. Jika Anda menggunakan pilihan `AWS.Tools.*` termodulasikan, hanya modul yang saat ini Anda telah impor yang akan ditampilkan.

Misalnya:

```
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
...
```

Untuk menentukan versi PowerShell yang Anda jalankan, masukkan `$PSVersionTable` untuk melihat isi [variabel otomatis](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-6) \$1 PSVersion Tabel.

Misalnya:

```
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
```

## Memperbarui Alat AWS untuk PowerShell pada Windows
<a name="pstools-updating"></a>

Secara berkala, saat versi terbaru dirilis, Anda harus memperbarui versi yang Anda jalankan secara lokal. Alat AWS untuk PowerShell 

### Perbarui modul termodulasi `AWS.Tools`
<a name="update-the-tools-for-powershell"></a>

Untuk memperbarui `AWS.Tools` modul Anda ke versi terbaru, jalankan perintah berikut:

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

Perintah ini memperbarui semua modul `AWS.Tools` yang saat ini diinstal dan, setelah berhasil melakukan pembaruan, menghapus versi lain yang terpasang.

**catatan**  
`Update-AWSToolsModule`Cmdlet mengunduh semua modul dari `PSRepository` nama `PSGallery` ([https://www.powershellgallery.com/](https://www.powershellgallery.com/)) dan menganggapnya sebagai sumber tepercaya. Gunakan perintah: `Get-PSRepository -Name PSGallery` untuk informasi lebih lanjut tentang `PSRepository` ini.

### Perbarui Alat untuk PowerShell Inti
<a name="update-the-tools-for-powershell-core"></a>

Jalankan `Get-AWSPowerShellVersion` cmdlet untuk menentukan versi yang Anda jalankan, dan bandingkan dengan versi Alat untuk Windows PowerShell yang tersedia di situs web [PowerShell Galeri](https://www.powershellgallery.com/packages/AWSPowerShell). Kami sarankan Anda memeriksanya setiap dua sampai tiga minggu. Support untuk perintah dan AWS layanan baru hanya tersedia setelah Anda memperbarui ke versi dengan dukungan itu.

Sebelum Anda menginstal rilis AWSPower Shell yang lebih baru. NetCore, hapus instalan modul yang ada. Tutup PowerShell sesi terbuka sebelum Anda menghapus paket yang ada. Jalankan perintah berikut untuk menghapus paket.

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

Setelah paket dihapus, instal modul diperbarui dengan menjalankan perintah berikut.

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

Setelah instalasi, jalankan perintah `Import-Module AWSPowerShell.NetCore` untuk memuat cmdlet yang diperbarui ke sesi Anda PowerShell .

### Perbarui Alat untuk Windows PowerShell
<a name="update-the-tools-for-windows-powershell"></a>

Jalankan `Get-AWSPowerShellVersion` cmdlet untuk menentukan versi yang Anda jalankan, dan bandingkan dengan versi Alat untuk Windows PowerShell yang tersedia di situs web [PowerShell Galeri](https://www.powershellgallery.com/packages/AWSPowerShell). Kami sarankan Anda memeriksanya setiap dua sampai tiga minggu. Support untuk perintah dan AWS layanan baru hanya tersedia setelah Anda memperbarui ke versi dengan dukungan itu.
+ Jika Anda menginstal dengan menggunakan `Install-Module`, jalankan perintah berikut.

  ```
  PS > Uninstall-Module -Name AWSPowerShell -AllVersions
  PS > Install-Module -Name AWSPowerShell
  ```
+ Jika Anda menginstal dengan menggunakan file ZIP yang diunduh:

  1. Unduh versi terbaru dari [Tools for PowerShell](https://aws.amazon.com/powershell/) web site. Bandingkan nomor versi paket dalam nama file yang diunduh dengan nomor versi yang Anda dapatkan saat menjalankan cmdlet `Get-AWSPowerShellVersion`.

  1. Jika versi unduhan adalah angka yang lebih tinggi dari versi yang telah Anda instal, tutup semua Alat untuk PowerShell konsol Windows.

  1. Instal versi yang lebih baru dari Tools untuk Windows PowerShell.

Setelah instalasi, jalankan `Import-Module AWSPowerShell` untuk memuat cmdlet yang diperbarui ke sesi Anda PowerShell . Atau jalankan Alat AWS untuk PowerShell konsol khusus dari menu **Start** Anda.

# Menginstal Alat AWS untuk PowerShell di Linux atau macOS
<a name="pstools-getting-set-up-linux-mac"></a>

Topik ini memberikan petunjuk tentang cara menginstal Alat AWS untuk PowerShell di Linux atau macOS.

## Gambaran Umum Pengaturan
<a name="pstools-installing-core-prerequisites"></a>

Untuk menginstal Alat AWS untuk PowerShell di komputer Linux atau macOS, Anda dapat memilih dari dua opsi paket:
+ [**`AWS.Tools`**](#install-aws.tools-on-linux-macos)— Versi termodulasi dari. Alat AWS untuk PowerShell Setiap AWS layanan didukung oleh modul kecil individualnya sendiri, dengan modul dukungan bersama`AWS.Tools.Common`.
+ [**AWSPowerCangkang. NetCore**](#install-netcore-on-linux-macos) — Versi modul tunggal dan besar dari. Alat AWS untuk PowerShell Semua AWS layanan didukung oleh modul tunggal dan besar ini.
**catatan**  
Ketahuilah bahwa modul tunggal mungkin terlalu besar untuk digunakan dengan [AWS Lambda](https://aws.amazon.com/lambda/)fungsi. Sebagai gantinya, gunakan versi termodulasi yang ditunjukkan di atas.

 Mengatur salah satu dari pilihan ini pada komputer yang menjalankan Linux atau macOS memerlukan tugas-tugas berikut, dijelaskan secara rinci nanti dalam topik ini:

1. Instal PowerShell Core 6.0 atau yang lebih baru pada sistem yang didukung.

1. Setelah menginstal PowerShell Core, PowerShell mulailah dengan menjalankan `pwsh` shell sistem Anda.

1. Instal salah satu `AWS.Tools` atau AWSPower Shell. NetCore.

1. Jalankan `Import-Module` cmdlet yang sesuai untuk mengimpor modul ke sesi Anda PowerShell.

1. Jalankan cmdlet [Initialize- AWSDefault Configuration](https://docs.aws.amazon.com/powershell/v4/reference/items/Initialize-AWSDefaultConfiguration.html) untuk memberikan kredensil Anda. AWS 

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

Untuk menjalankan AWS Tools for PowerShell Core, komputer Anda harus menjalankan PowerShell Core 6.0 atau yang lebih baru. 
+ Untuk daftar rilis platform Linux yang didukung dan untuk informasi tentang cara menginstal versi terbaru PowerShell pada komputer berbasis Linux, lihat [Menginstal PowerShell di Linux di situs web](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux) Microsoft. Beberapa sistem operasi berbasis Linux, seperti Arch, Kali, dan Raspbian, tidak didukung secara resmi, tetapi memiliki berbagai tingkat dukungan masyarakat.
+ Untuk informasi tentang versi macOS yang didukung dan tentang cara menginstal versi terbaru di PowerShell macOS, lihat Menginstal [di PowerShell macOS di situs web Microsoft](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos).

## Pasang `AWS.Tools` pada Linux atau macOS
<a name="install-aws.tools-on-linux-macos"></a>

Anda dapat menginstal versi termodulasi Alat AWS untuk PowerShell pada komputer yang menjalankan PowerShell Core 6.0 atau yang lebih baru. Untuk informasi tentang cara menginstal PowerShell Core, lihat [Menginstal berbagai versi PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) di PowerShell situs web Microsoft. 

Anda dapat memasang `AWS.Tools` dengan memilih satu dari tiga cara:
+ Menggunakan cmdlet di modul `AWS.Tools.Installer`. Modul ini menyederhanakan instalasi dan pembaruan `AWS.Tools` modul lainnya. `AWS.Tools.Installer`membutuhkan`PowerShellGet`, dan secara otomatis mengunduh dan menginstal versi yang diperbarui. `AWS.Tools.Installer`secara otomatis membuat versi modul Anda tetap sinkron. Saat Anda menginstal atau memperbarui ke versi yang lebih baru dari satu modul, cmdlet secara `AWS.Tools.Installer` otomatis memperbarui semua `AWS.Tools` modul Anda yang lain ke versi yang sama.

  Metode ini dijelaskan dalam prosedur berikut.
+ Mengunduh modul dari `[AWS.Tools.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWS.Tools.zip)` dan mengekstraknya di salah satu direktori modul. Anda dapat menemukan direktori modul Anda dengan mencetak nilai variabel `$Env:PSModulePath`.
+ Menginstal setiap modul layanan dari PowerShell Galeri menggunakan `Install-Module` cmdlet.

**Untuk menginstal `AWS.Tools` di Linux atau macOS menggunakan modul `AWS.Tools.Installer`**

1. Mulai sesi PowerShell Core dengan menjalankan perintah berikut.

   ```
   $ pwsh
   ```
**catatan**  
Kami menyarankan agar Anda *tidak* menjalankan PowerShell sebagai administrator dengan izin yang ditinggikan kecuali jika diperlukan oleh tugas yang ada. Hal ini karena potensi risiko keamanan dan tidak sesuai dengan prinsip batasan akses yang paling rendah.

1. Untuk menginstal paket `AWS.Tools` termodulasi menggunakan modul `AWS.Tools.Installer`, jalankan perintah berikut.

   ```
   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
   ```

   Jika Anda diberi tahu bahwa repositori "tidak terpercaya", Anda akan ditanya apakah Anda tetap ingin menginstalnya. Masukkan **y** untuk memungkinkan PowerShell untuk menginstal modul. Untuk menghindari prompt dan menginstal modul tanpa mempercayai repositori, Anda dapat menjalankan perintah berikut.

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

1. Anda sekarang dapat menginstal modul untuk setiap layanan yang ingin Anda gunakan. Misalnya, perintah berikut menginstal modul Amazon EC2 dan Amazon S3. Perintah ini juga menginstal setiap modul tergantung yang diperlukan untuk modul tertentu yang akan dikerjakan. Misalnya, saat Anda menginstal modul layanan `AWS.Tools`, maka secara otomatis akan menginstal `AWS.Tools.Common`. Ini adalah modul bersama yang dibutuhkan oleh semua modul AWS layanan. Tindakan ini juga akan menghapus versi modul yang lebih lama, dan memperbarui modul lain ke versi yang sama barunya.

   ```
   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
   ```
**catatan**  
`Install-AWSToolsModule`Cmdlet mengunduh semua modul yang diminta dari `PSRepository` nama `PSGallery` ([https://www.powershellgallery.com/](https://www.powershellgallery.com/)) dan menganggap repositori sebagai sumber tepercaya. Gunakan perintah `Get-PSRepository -Name PSGallery` untuk informasi lebih lanjut tentang `PSRepository` ini.

   Perintah sebelumnya menginstal modul ke direktori default pada sistem Anda. Direktori sebenarnya tergantung pada distribusi dan versi sistem operasi Anda dan pada versi yang PowerShell Anda instal. Misalnya, jika Anda menginstal PowerShell 7 pada sistem seperti RHEL, modul default kemungkinan besar terletak di `/opt/microsoft/powershell/7/Modules` (atau`$PSHOME/Modules`) dan modul pengguna kemungkinan besar berada di. `~/.local/share/powershell/Modules` Untuk informasi selengkapnya, lihat [Menginstal PowerShell di Linux](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-linux) di PowerShell situs web Microsoft. Untuk melihat di mana modul diinstal, jalankan perintah berikut:

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

   Untuk menginstal modul lain, jalankan perintah serupa dengan nama modul yang sesuai, seperti yang ditemukan di [PowerShell Galeri](https://www.powershellgallery.com/packages?q=aws).

## Instal AWSPower Shell. NetCore di Linux atau macOS
<a name="install-netcore-on-linux-macos"></a>

Untuk meng-upgrade ke rilis AWSPower Shell yang lebih baru. NetCore, ikuti instruksi di[Memperbarui Alat AWS untuk PowerShell di Linux atau macOS](#pstools-updating-linux). Copot pemasangan AWSPower Shell versi sebelumnya. NetCore pertama.

Anda dapat menginstal AWSPower Shell. NetCore dalam salah satu dari dua cara:
+ Mengunduh modul dari `[AWSPowerShell.NetCore.zip](https://sdk-for-net.amazonwebservices.com/ps/v4/latest/AWSPowerShell.NetCore.zip)` dan mengekstraknya di salah satu direktori modul. Anda dapat menemukan direktori modul Anda dengan mencetak nilai variabel `$Env:PSModulePath`.
+ Menginstal dari PowerShell Galeri menggunakan `Install-Module` cmdlet seperti yang dijelaskan dalam prosedur berikut.

**Untuk menginstal AWSPower Shell. NetCore di Linux atau macOS menggunakan cmdlet Install-Module**

Mulai sesi PowerShell Core dengan menjalankan perintah berikut.

```
$ pwsh
```

**catatan**  
Kami menyarankan Anda untuk *tidak* memulai PowerShell dengan menjalankan `sudo pwsh` untuk menjalankan PowerShell dengan hak administrator yang tinggi. Hal ini karena potensi risiko keamanan dan tidak sesuai dengan prinsip batasan akses yang paling rendah.

Untuk menginstal AWSPower Shell. NetCore paket modul tunggal dari PowerShell Galeri, jalankan perintah berikut.

```
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
```

Jika Anda diberi tahu bahwa repositori "tidak terpercaya", Anda akan ditanya apakah Anda tetap ingin menginstalnya. Masukkan **y** untuk memungkinkan PowerShell untuk menginstal modul. Untuk menghindari prompt tanpa mempercayai repositori, Anda dapat menjalankan perintah berikut.

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

Anda tidak perlu menjalankan perintah ini sebagai root, kecuali jika Anda ingin menginstal Alat AWS untuk PowerShell untuk semua pengguna komputer. Untuk melakukan ini, jalankan perintah berikut dalam PowerShell sesi yang telah Anda mulai`sudo pwsh`.

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

## Eksekusi Skrip
<a name="enable-script-execution"></a>

Perintah `Set-ExecutionPolicy` tidak tersedia pada sistem non-Windows. Anda dapat menjalankan`Get-ExecutionPolicy`, yang menunjukkan bahwa pengaturan kebijakan eksekusi default di PowerShell Core yang berjalan pada sistem non-Windows adalah`Unrestricted`. Untuk informasi selengkapnya, lihat [Tentang Kebijakan Eksekusi](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-5.1) di situs web Microsoft Technet.

 Karena `PSModulePath` menyertakan lokasi direktori AWS modul, `Get-Module -ListAvailable` cmdlet menunjukkan modul yang Anda instal.

**`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…
```

**AWSPowerCangkang. NetCore**

```
PS > Get-Module -ListAvailable

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

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

## Konfigurasikan PowerShell Konsol untuk Menggunakan AWS Tools for PowerShell Core (AWSPowerShell. NetCore Hanya)
<a name="pstools-config-ps-window"></a>

PowerShell Inti biasanya memuat modul secara otomatis setiap kali Anda menjalankan cmdlet dalam modul. Tapi ini tidak berhasil untuk AWSPower Shell. NetCore karena ukurannya yang besar. Untuk mulai menjalankan AWSPower Shell. NetCore cmdlets, Anda harus terlebih dahulu menjalankan perintah. `Import-Module AWSPowerShell.NetCore` Ini tidak diperlukan untuk cmdlet di modul `AWS.Tools`.

## Inisialisasi Sesi Anda PowerShell
<a name="linux-config-init"></a>

Ketika Anda memulai PowerShell pada sistem berbasis Linux atau MacOS setelah Anda menginstal Alat AWS untuk PowerShell, Anda harus menjalankan [Initialize- AWSDefault Configuration](https://docs.aws.amazon.com/powershell/v4/reference/items/Initialize-AWSDefaultConfiguration.html) untuk menentukan kunci akses mana yang akan digunakan. AWS Untuk informasi selengkapnya tentang `Initialize-AWSDefaultConfiguration`, lihat [Menggunakan AWS Kredensial](specifying-your-aws-credentials.md).

**catatan**  
Dalam rilis sebelumnya (sebelum 3.3.96.0) dari Alat AWS untuk PowerShell, cmdlet ini diberi nama. `Initialize-AWSDefaults`

## Penentuan versi
<a name="pstools-versioning"></a>

AWS merilis versi baru secara Alat AWS untuk PowerShell berkala untuk mendukung AWS layanan dan fitur baru. Untuk menentukan versi yang telah Anda instal, jalankan [Get- AWSPower ShellVersion](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-AWSPowerShellVersion.html) cmdlet. Alat AWS untuk PowerShell 

Contoh:

```
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]
```

Untuk melihat daftar AWS layanan yang didukung dalam versi alat saat ini, tambahkan `-ListServiceVersionInfo` parameter ke AWSPower ShellVersion cmdlet [Get-](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-AWSPowerShellVersion.html).

Untuk menentukan versi PowerShell yang Anda jalankan, masukkan `$PSVersionTable` untuk melihat konten [variabel `$PSVersionTable` otomatis](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-6).

Contoh:

```
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
```

## Memperbarui Alat AWS untuk PowerShell di Linux atau macOS
<a name="pstools-updating-linux"></a>

Secara berkala, saat versi terbaru dirilis, Anda harus memperbarui versi yang Anda jalankan secara lokal. Alat AWS untuk PowerShell 

### Perbarui modul termodulasi `AWS.Tools`
<a name="update-aws.tools-all-systems"></a>

Untuk memperbarui `AWS.Tools` modul Anda ke versi terbaru, jalankan perintah berikut:

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

Perintah ini memperbarui semua modul `AWS.Tools` yang saat ini diinstal dan, untuk modul-modul yang berhasil diperbarui, menghapus versi sebelumnya.

**catatan**  
`Update-AWSToolsModule`Cmdlet mengunduh semua modul dari `PSRepository` nama `PSGallery` ([https://www.powershellgallery.com/](https://www.powershellgallery.com/)) dan menganggapnya sebagai sumber tepercaya. Gunakan perintah `Get-PSRepository -Name PSGallery` untuk informasi lebih lanjut tentang `PSRepository` ini.

### Perbarui Alat untuk PowerShell Inti
<a name="update-netcore-all-systems"></a>

Jalankan `Get-AWSPowerShellVersion` cmdlet untuk menentukan versi yang Anda jalankan, dan bandingkan dengan versi Alat untuk Windows PowerShell yang tersedia di situs web [PowerShell Galeri](https://www.powershellgallery.com/packages/AWSPowerShell). Kami sarankan Anda memeriksanya setiap dua sampai tiga minggu. Support untuk perintah dan AWS layanan baru hanya tersedia setelah Anda memperbarui ke versi dengan dukungan itu.

Sebelum Anda menginstal rilis AWSPower Shell yang lebih baru. NetCore, hapus instalan modul yang ada. Tutup PowerShell sesi terbuka sebelum Anda menghapus paket yang ada. Jalankan perintah berikut untuk menghapus paket.

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

Setelah paket dihapus, instal modul diperbarui dengan menjalankan perintah berikut.

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

Setelah instalasi, jalankan perintah `Import-Module AWSPowerShell.NetCore` untuk memuat cmdlet yang diperbarui ke sesi Anda PowerShell .

## Informasi Terkait
<a name="pstools-seealso-setup"></a>
+  [Memulai dengan AWS Tools for Windows PowerShell](pstools-getting-started.md) 
+  [Bekerja dengan AWS layanan di Alat AWS untuk PowerShell](pstools-using.md) 

# Migrasi dari Alat AWS untuk PowerShell Versi 3.3 ke Versi 4
<a name="v4migration"></a>

Alat AWS untuk PowerShell versi 4 adalah pembaruan yang kompatibel ke belakang ke Alat AWS untuk PowerShell versi 3.3. Versi ini menambahkan perbaikan yang signifikan dengan tetap mempertahankan perilaku cmdlet yang ada. 

Skrip Anda yang ada harus terus bekerja setelah diperbarui ke versi baru, tetapi kami rekomendasikan Anda mengujinya secara menyeluruh sebelum memperbarui lingkungan produksi Anda.

Bagian ini menjelaskan perubahan dan menjelaskan bagaimana kemungkinan dampaknya terhadap skrip Anda.

## Versi `AWS.Tools` Baru yang Sepenuhnya Termodulasi
<a name="migrate-aws-tools"></a>

 AWSPowerCangkangnya. NetCore dan paket AWSPower Shell adalah “monolitik”. Ini berarti bahwa semua AWS layanan didukung dalam modul yang sama, membuatnya sangat besar, dan tumbuh lebih besar karena setiap AWS layanan dan fitur baru ditambahkan. `AWS.Tools`Paket baru dipecah menjadi modul yang lebih kecil yang memberi Anda fleksibilitas untuk mengunduh dan menginstal hanya yang Anda butuhkan untuk AWS layanan yang Anda gunakan. Paket termasuk modul `AWS.Tools.Common` bersama yang diperlukan oleh semua modul lainnya, dan modul `AWS.Tools.Installer` yang menyederhanakan pemasangan, pembaruan, dan penghapusan modul sesuai kebutuhan.

Hal ini juga memungkinkan pengimporan otomatis cmdlet pada panggilan pertama, tanpa harus terlebih dulu memanggil `Import-module`. Namun, untuk berinteraksi dengan objek.NET terkait sebelum memanggil cmdlet, Anda tetap harus menelepon `Import-Module` untuk memberi PowerShell tahu tentang jenis.NET yang relevan. 

Misalnya, perintah berikut memiliki referensi ke `Amazon.EC2.Model.Filter`. Jenis referensi ini tidak dapat memicu pengimporan otomatis, jadi Anda harus terlebih dulu memanggil `Import-Module` atau perintah ini akan gagal.

```
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
```

## Cmdlet `Get-AWSService` baru
<a name="migrate-get-awsservice"></a>

Untuk membantu Anda menemukan nama-nama modul untuk setiap AWS layanan dalam `AWS.Tools` kumpulan modul, Anda dapat menggunakan `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
  ...
```

## Parameter `-Select` baru untuk Mengendalikan Obyek yang Dikembalikan oleh Cmdlet
<a name="migrate-select"></a>

Sebagian besar cmdlet dalam versi 4 mendukung parameter `-Select` baru. Setiap cmdlet memanggil AWS layanan APIs untuk Anda menggunakan. AWS SDK untuk .NET Kemudian Alat AWS untuk PowerShell klien mengubah respons menjadi objek yang dapat Anda gunakan dalam PowerShell skrip dan pipa ke perintah lain. Terkadang PowerShell objek akhir memiliki lebih banyak bidang atau properti dalam respons asli daripada yang Anda butuhkan, dan di lain waktu Anda mungkin ingin objek menyertakan bidang atau properti respons yang tidak ada secara default. Parameter `-Select` memungkinkan Anda untuk menyebutkan yang termasuk dalam obyek .NET yang dikembalikan oleh cmdlet.

Misalnya, [Get-S3Object](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-S3Object.html)cmdlet memanggil operasi Amazon S3 SDK. [ListObjects](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/index.html?page=S3/MS3ListObjectsListObjectsRequest.html) Operasi itu mengembalikan [ListObjectsResponse](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/index.html?page=S3/MS3ListObjectsListObjectsRequest.h)objek. Namun, secara default, `Get-S3Object` cmdlet hanya mengembalikan `S3Objects` elemen respons SDK kepada pengguna. PowerShell Pada contoh berikut, obyek adalah array dengan dua elemen.

```
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
```

Di Alat AWS untuk PowerShell versi 4, Anda dapat menentukan `-Select *` untuk mengembalikan objek respons.NET lengkap yang dikembalikan oleh panggilan SDK API.

```
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      :
```

Anda juga dapat menyebutkan jalur ke properti nest tertentu yang Anda inginkan. Contoh berikut hanya mengembalikan properti `Key` dari setiap elemen dalam array `S3Objects`.

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

Dalam situasi tertentu, ini dapat berguna untuk mengembalikan parameter cmdlet. Anda dapat melakukannya dengan `-Select ^ParameterName`. Fitur ini menggantikan parameter `-PassThru`, yang masih tersedia tetapi tidak lagi digunakan. 

```
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
```

[Topik referensi](https://docs.aws.amazon.com/powershell/v4/reference/) untuk setiap cmdlet menentukan apakah mendukung parameter `-Select` tersebut atau tidak.

## Pembatasan Lebih Konsisten dari Jumlah Item dalam Output
<a name="migrate-iterate"></a>

Versi sebelumnya Alat AWS untuk PowerShell memungkinkan Anda untuk menggunakan `-MaxItems` parameter untuk menentukan jumlah maksimum objek yang dikembalikan dalam output akhir.

Perilaku ini dihapus dari `AWS.Tools`.

Perilaku ini tidak digunakan lagi di Shell. AWSPower NetCore dan AWSPower Shell, dan akan dihapus dari versi tersebut di rilis mendatang.

Jika API layanan yang mendasari mendukung parameter `MaxItems`, maka akan masih tersedia dan berfungsi sebagaimana yang disebutkan API. Tetapi tidak lagi mempunyai perilaku tambahan yang membatasi jumlah item yang dikembalikan dalam output cmdlet.

Untuk membatasi jumlah item yang dikembalikan dalam output akhir, pipa output ke `Select-Object` cmdlet dan tentukan `-First n` parameternya, di mana *n* jumlah maksimum item yang akan dimasukkan dalam output akhir.

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

Tidak semua AWS layanan didukung dengan `-MaxItems` cara yang sama, jadi ini menghilangkan ketidakkonsistenan itu dan hasil tak terduga yang terkadang terjadi. Dan juga, `-MaxItems` yang dikombinasikan dengan parameter [`-Select`](#migrate-select) baru terkadang dapat mengakibatkan hasil yang membingungkan.

## Lebih Mudah Menggunakan Parameter Pengaliran
<a name="migrate-streamparam"></a>

Parameter jenis `Stream` atau `byte[]` sekarang dapat menerima nilai `string`, `string[]`, atau `FileInfo`.

Misalnya, Anda dapat menggunakan hal berikut.

```
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"', '}')
```

 Alat AWS untuk PowerShell mengkonversi semua string untuk `byte[]` menggunakan UTF-8 encoding.

## Memperluas Alur dengan Nama Properti
<a name="migrate-pipes"></a>

Agar pengalaman pengguna lebih konsisten, Anda sekarang dapat melewati input alur dengan menyebutkan nama properti untuk parameter *apa pun*. 

Pada contoh berikut, kita membuat obyek kustom dengan properti yang memiliki nama yang cocok dengan nama parameter cmdlet target. Ketika cmdlet berjalan, maka secara otomatis menggunakan properti tersebut sebagai parameternya.

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

**catatan**  
Beberapa properti mendukung ini di versi sebelumnya Alat AWS untuk PowerShell. Versi 4 membuatnya lebih konsisten dengan memungkinkannya untuk *semua* parameter.

## Parameter Umum Statis
<a name="migrate-staticcommonparams"></a>

Untuk meningkatkan konsistensi di versi 4.0 Alat AWS untuk PowerShell, semua parameter bersifat statis.

Pada versi sebelumnya Alat AWS untuk PowerShell, beberapa parameter umum seperti`AccessKey`,,`SecretKey`, atau `ProfileName``Region`, bersifat [dinamis](https://docs.microsoft.com/dotnet/api/system.management.automation.idynamicparameters), sementara semua parameter lainnya bersifat statis. Ini dapat menimbulkan masalah karena PowerShell mengikat parameter statis sebelum parameter dinamis. Sebagai contoh, katakanlah Anda menjalankan perintah berikut.

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

Versi sebelumnya PowerShell mengikat nilai `us-west-2` ke parameter `-RegionName` statis alih-alih parameter `-Region` dinamis. Kemungkinan besar, hal ini dapat membingungkan pengguna.

## `AWS.Tools` Menyatakan dan Menerapkan Parameter Wajib
<a name="migrate-mandatoryparams"></a>

Modul-modul `AWS.Tools.*` saat ini menyatakan dan menerapkan parameter cmdlet wajib. Saat AWS Layanan menyatakan bahwa parameter API diperlukan, akan PowerShell meminta parameter cmdlet yang sesuai jika Anda tidak menentukannya. Ini hanya berlaku untuk `AWS.Tools`. Untuk memastikan kompatibilitas mundur, ini tidak berlaku untuk AWSPower Shell. NetCore atau AWSPower Shell.

## Semua Parameter Dapat Dibatalkan
<a name="migrate-nullableparams"></a>

Sekarang Anda dapat menetapkan `$null` untuk parameter jenis nilai (angka dan tanggal). Perubahan ini seharusnya tidak mempengaruhi skrip yang ada. Hal ini memungkinkan Anda untuk memotong prompt untuk parameter wajib. Parameter wajib diterapkan hanya di `AWS.Tools`.

Jika Anda menjalankan contoh berikut menggunakan versi 4, maka akan secara efektif memotong validasi sisi klien karena Anda memberikan "value" untuk setiap parameter wajib. Namun, panggilan layanan Amazon EC2 API gagal karena AWS layanan masih memerlukan informasi tersebut.

```
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
```

## Menghapus Fitur yang Sudah Tidak Lagi Digunakan
<a name="migrate-removeprevdeprecated"></a>

Fitur-fitur berikut tidak digunakan lagi dalam rilis sebelumnya Alat AWS untuk PowerShell dan dihapus di versi 4:
+ Menghapus parameter `-Terminate` dari cmdlet `Stop-EC2Instance`. Sebagai gantinya, gunakan `Remove-EC2Instance`.
+ Menghapus `-ProfileName` parameter dari Clear- AWSCredential cmdlet. Sebagai gantinya, gunakan `Remove-AWSCredentialProfile`.
+ Menghapus cmdlet `Import-EC2Instance` dan `Import-EC2Volume`.