
AWS Tools for PowerShell
The AWS Tools for Windows PowerShell and AWS Tools for PowerShell Core are PowerShell modules that are built on the functionality exposed by the AWS SDK for .NET. With AWS PowerShell tools, you can script, maintain, and automate various AWS operations on AWS resources from the PowerShell command line. You may be thinking why is PowerShell used for AWS instead of AWS CLI provided by AWS, which is supported on many different platforms as well? The question is obvious. I personally started using AWS CLI when I started working on AWS for maintaining and automating some workloads. But over time, when you start managing Windows, Linux, and other platforms, the complexity increases. And that's where I thought that PowerShell provides the single pane which is needed to schedule the same kind of script without any modifications on other platforms. Another important aspect is that the output generated by AWS CLI commands are just textual, and you would require many other utilities to format the output in order to pass on to the other subprograms. This is the beauty of PowerShell. The output can act as an object, and you pick up the properties that you want to manipulate, which makes scripting very easy.
AWS Tools for Windows PowerShell is particularly for Windows-based systems and can be downloaded from https://aws.amazon.com/powershell/. You will find the MSI installer on the top right on the previous link and upon successful installation, you will get the AWSPowerShell module installed in your PowerShell.
AWS Tools for PowerShell Core are meant for all the platforms, and at the time of writing this book, it was still in beta. This new module is known as the AWS Tools for PowerShell Core Edition or AWSPowerShell.NetCore. Just like PowerShell itself, this new module can be used on Windows, Linux, and the OS X platform. The AWSPowerShell.NetCore module is built on top of the .NET Core version of the AWS SDK for .NET.
Currently, there is a high compatibility between AWS Tools for Windows PowerShell and AWS Tools for PowerShell Core. There will be some exceptions though. I see that some of the cmdlets, which were available for some of the AWS services, are not seen in the AWSPowerShell.NetCore module. If they are not seen, it does not mean the functionality is removed; it means it could have been renamed to some other cmdlet. You will get that idea as you scan through the AWS PowerShell cmdlet. You may find those subtle differences in the documentation.