0

AWS のボリューム スナップショットをあるリージョンから別のリージョンにコピーする Powershell スクリプトをセットアップしようとしています。以下のスクリプトは機能すると思いますが、psobject $Snapshots にソース リージョンからの一致が適切に取り込まれていないのではないかと疑っています。PS初心者のようなものですが、アレイの塗りつぶしをトラブルシューティングする方法や、スクリプトの明らかな間違いを見つける方法を誰か教えてもらえますか? ドキュメントから、これはうまくいくはずです:

# Adds snap-ins to the current powershell session for Powershell for Amazon Web Services.
if (-not (Get-Module AWSPowerShell -ErrorAction SilentlyContinue))

{Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1" > $null
    }

Set-DefaultAWSRegion us-west-1

Creates the filter for qualifying snapshots

$Filter = (New-Object Amazon.EC2.Model.Filter).WithName("tag:SnapStatus").WithValue("SnapshotEBSEnabled")

# Loads the qualifying snapshots into an array of snapshots
$Snapshots = Get-EC2Snapshot -Region us-east-1 -Filter $Filter 

# Loops through the snapshot objects and copies them from us-east-1 to us-west-1

foreach ($Snapshot in $Snapshots)

{$Snapshot | Where-Object {$_.Description -eq "SnapshotEBSEnabled"} | Copy-EC2Snapshot -SourceRegion us-east-1 -SourceSnapshotId $Snapshot.SnapshotId -Description "SnapshotEBSEnabled" -Region us-west-1
    }
4

1 に答える 1

1

ForEach ブロックがごちゃごちゃしているようです。これを試して:

$Snapshots | 
    Where { $_.Description -eq "SnapshotEBSEnabled" } |
    ForEach-Object { 
        Copy-EC2Snapshot -SourceRegion us-east-1 -SourceSnapshotId $_.SnapshotId -Description "SnapshotEBSEnabled" -Region us-west-1
    }
于 2013-10-08T17:39:28.960 に答える