AWS Tools for Windows PowerShellをzipファイルでアップデートするサンプルです。
(Windows Server2012(AWS EC2),AWS Tools for Windows PowerShell 4.1.118)
目次
概要
- 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をダウンロードします。
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
関連の記事