AWS Tools for Windows PowerShellをアップデート

AWS Tools for Windows PowerShellをzipファイルでアップデートするサンプルです。
(Windows Server2012(AWS EC2),AWS Tools for Windows PowerShell 4.1.118)

目次

サンプル 概要
1.AWS Tools for Windows PowerShellをアンインストールする
2.AWS Tools for Windows PowerShellをアップデートする
PowerShellのバージョンを確認する($PSVersionTable)
バージョンを確認する(Get-AWSPowerShellVersion)
AWS Tools for Windows PowerShellからS3へのコマンド

概要

  • AWS Tools for Windows PowerShellは、WindowsコマンドラインからAWSを実行できるようにするAWS公式モジュールです。
  • PowerShellギャラリーからのインストールはPowerShell5.0 以降のためAWS公式サイトにあるzipファイルからインストールします。
  • このサンプルではS3へアクセスできるロールがEC2についている前提です。

 

1.AWS Tools for Windows PowerShellをアンインストールする

必要な場合は、現在のバージョンを確認します。
バージョンを確認する(Get-AWSPowerShellVersion)

 

コントロールパネル>プログラム>Programs and Features
右クリックからアンインストールをクリックします。

 

アンインストール後は、Get-AWSPowerShellVersionで確認してもバージョンは表示されません。

PS C:\Users\Administrator> Get-AWSPowerShellVersion
Get-AWSPowerShellVersion : The term 'Get-AWSPowerShellVersion' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again.
At line:1 char:1
+ Get-AWSPowerShellVersion
+ ~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-AWSPowerShellVersion:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\Administrator>

 

AWS Tools for Windows PowerShellをアップデートする

1.以下のAWSPowerShellをインストールのページを開き、AWSPowerShell.zipをダウンロードします。

https://docs.aws.amazon.com/ja_jp/powershell/latest/userguide/pstools-getting-set-up-windows.html#ps-installing-awswindowspowershell

 

2.$Env:PSModulePath コマンドを実行し、表示されたモジュールディレクトリに上記zipファイルを展開して配置します。

C:\Program Files\WindowsPowerShell\Modulesに配置しました。

 

3.PowerShellでSet-ExecutionPolicy RemoteSignedを実行します。
※Get-ExecutionPolicyで現在のスクリプトの実行の状態を確認できます。

PS C:\Users\Administrator> Set-ExecutionPolicy RemoteSigned

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic at
http://go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y
PS C:\Users\Administrator> Import-Module "C:\Program Files\WindowsPowerShell\Modules\AWSPowerShell.4.1.312\AWSPowerShe
\4.1.312\AWSPowerShell.psd1"
PS C:\Users\Administrator> Get-Module

7行目は、Yを入力します。

 

4.Import Moduleを実行します。

PS C:\Users\Administrator> Import-Module "C:\Program Files\WindowsPowerShell\Modules\AWSPowerShell.4.1.312\AWSPowerShell\4.1.312\AWSPowerShell.psd1"
PS C:\Users\Administrator>

バージョンが上がっていることを確認します。 バージョンを確認する(Get-AWSPowerShellVersion)

Version 4.1.312になりました。

 

5.上記まででは、PowerShellを再起動した場合、ModuleがないというエラーになるのでPowerShell プロファイル(テキスト)を修正します。ファイルが存在しない場合は作成します。

全ユーザーのPowerShellのプロファイルC:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1

指定したユーザーのPowerShellのプロファイル
C:\Users\(ユーザ名)\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Import-Module "C:\Program Files\WindowsPowerShell\Modules\AWSPowerShell.4.1.312\AWSPowerShell\4.1.312\AWSPowerShell.psd1"

 

6.PowerShellを再起動すると項番4のImport Moduleを実行しなくてもAWS Tools for Windows PowerShellが機能するようになります。

 

PowerShellのバージョンを確認する($PSVersionTable)

$PSVersionTable

$PSVersionTableコマンドでバージョンを表示します。

PS C:\Users\Administrator> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   6.3.9600.20337
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2
PS C:\Users\Administrator>

4行目のPSVersionがPowerShellのバージョンです。

 

バージョンを確認する(Get-AWSPowerShellVersion)

Get-AWSPowerShellVersion

Get-AWSPowerShellVersionコマンドでバージョンを表示します。

PS C:\Users\Administrator> Get-AWSPowerShellVersion

AWS Tools for Windows PowerShell
Version 4.1.118
Copyright 2012-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.

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

Release notes: https://github.com/aws/aws-tools-for-powershell/blob/master/CHANGELOG.md

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

4行目は、バージョンです。

 

AWS Tools for Windows PowerShellからS3へのコマンド

S3へ送信

Write-S3Object -BucketName バケット名 -key awsのパスとファイル名 -File ローカルのパスとファイル名
Write-S3Object -BucketName test-s3-data-2022 -File win1.txt
Write-S3Object -BucketName test-s3-data-2022 -Key "testfolder/win2.txt" -File win2.txt

1行目は、S3のバケット直下にファイルが配置されます。
2行目は、S3のtest-s3-data-2022/testfolder配下にファイルが配置されます。

S3から取得

Copy-S3Object -BucketName バケット名 -Key awsのパスとファイル名 -LocalFile ローカルのパスとファイル名
Copy-S3Object -BucketName test-s3-data-2022 -Key win1.txt -LocalFile .\test\win1.txt
Copy-S3Object -BucketName test-s3-data-2022 -Key "testfolder/win2.txt" -LocalFile .\test2\win2.txt

1行目は、S3のバケット直下のファイルをローカルに配置します。
2行目は、S3のtest-s3-data-2022/testfolder配下のファイルをローカルに配置します。

S3のファイルの一覧を表示

Get-S3Object -BucketName バケット名
Get-S3Object -BucketName test-s3-data-2022

関連の記事

AWS CLIのコマンド (S3のファイルの一覧/コピー/移動)

△上に戻る