

的版本 5 (V5) AWS Tools for PowerShell 已经发布！

有关重大更改和迁移应用程序的信息，请参阅[迁移主题](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)。

 [https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 从 AWS Tools for PowerShell 版本 4 迁移到版本 5
<a name="migrating-v5"></a>

AWS Tools for PowerShell 版本 5 (V5) 有重大更改，这可能会导致现有脚本停止运行。本主题介绍了 V5 中的重大更改以及从 V4 迁移环境或代码可能需要完成的工作。

有关中值得注意的变化的更多信息， AWS Tools for PowerShell 另请参阅以下资源：
+ 博客文章 [AWS Tools for PowerShell V5 现已正式上市。](https://aws.amazon.com/blogs/developer/aws-tools-for-powershell-v5-now-generally-available/)
+ 中的 [V5 开发跟踪器问题。 GitHub](https://github.com/aws/aws-tools-for-powershell/issues/357)除了重大更改列表外，请务必查看每个预览的详细信息。
+ 博客文章 [AWS Tools for PowerShell V5 预览 1](https://aws.amazon.com/blogs/developer/preview-1-of-aws-tools-for-powershell-v5/)

**注意**  
由于 AWS Tools for PowerShell 依赖于 适用于 .NET 的 AWS SDK，因此与 SDK 的 V4 相关的一些更改也可能会影响工具的 V5。 PowerShell要查看 V4 的更改内容 适用于 .NET 的 AWS SDK，请参阅《[适用于 .NET 的 AWS SDK 开发人员指南》](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/)中的[迁移信息](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)。

## 最低 PowerShell 版本
<a name="migrating-v5-min-ps-ver"></a>

对于名为 *AWSPowerShell* 的旧版、特定于 Windows 的单一大型模块版本 AWS Tools for PowerShell，该模块支持的最低 PowerShell 版本已更新为 5.1。这与.NET Framework 4.7.2 适用于 .NET 的 AWS SDK 的新最低版本相匹配。

有关旧版 AWSPower Shell 模块的更多信息，请参阅[在 Windows 上安装](pstools-getting-set-up-windows.md)。

## 安装或更新 `AWS.Tools` V4
<a name="migrating-v5-install-v4"></a>

安装或更新名为 cmdlet 的 AWS Tools for PowerShell模块化版本时`AWS.Tools`，默认情况下，`Install-AWSToolsModule`和 `Update-AWSToolsModule` cmdlet 自然会使用版本 5。`AWS.Tools`如果出于某种原因需要安装或更新版本 4，`AWS.Tools`则可以分别使用以下命令来实现：

```
Install-AWSToolsModule -MaximumVersion '4.9.999'
Update-AWSToolsModule -MaximumVersion '4.9.999'
```

有关安装和更新的 “工具” 的其他信息 PowerShell，请参阅 [开始使用](pstools-getting-set-up.md)

## 使用 CTRL\$1C 取消执行 cmdlet
<a name="migrating-v5-ctrl-c"></a>

的版本 5 AWS Tools for PowerShell 允许您使用诸如 CTRL\$1C 之类的键盘快捷键取消 cmdlet 的执行。

## 可为空的值类型
<a name="migrating-v5-value-types"></a>

采用的类型 适用于 .NET 的 AWS SDK 已更新为使用 SDK 的新可为空的更改。例如，类型的属性`int`已更改为`Nullable[int]`。此更改不会影响为 AWS cmdlet 指定输入参数值的方式，因为这些值类型参数已经建模为可为空。但是，cmdlet 输出的可为空的类型是一个重大变化，因为 cmdlet 输出中的属性将包含`$null`而不是各种类型的默认值。

以下示例演示了 Tools V4 中的行为。 PowerShell在此示例中，该`MissingMeta`属性设置为 0，因为这是类型的默认值`int`。

```
# In V4
PS > Get-S3ObjectMetadata -BucketName amzn-s3-demo-bucket  -Key 'test' |
>> Select LastModified, MissingMeta, ObjectLockRetainUntilDate, BucketKeyEnabled

LastModified          MissingMeta ObjectLockRetainUntilDate BucketKeyEnabled
------------          ----------- ------------------------- ----------------
8/29/2023 10:20:44 PM           0 1/1/0001 12:00:00 AM
```

以下示例演示了 V5 中工具的 PowerShell行为。在此示例中，该`MissingMeta`属性设置为`$null`。

```
# In V5
PS > Get-S3ObjectMetadata -BucketName amzn-s3-demo-bucket -Key 'test' |
>> Select LastModified, MissingMeta, ObjectLockRetainUntilDate, BucketKeyEnabled

LastModified          MissingMeta ObjectLockRetainUntilDate BucketKeyEnabled
------------          ----------- ------------------------- ----------------
8/29/2023 10:20:44 PM
```

在大多数情况下，无需更改代码，因为 PowerShell 可以从可为空的值类型隐式转换为不可为空的值类型。但是，对于显式检查可为空值类型的默认值的比较逻辑代码来说，这是一个重大变化。必须修改检查不可为空类型的默认值的比较逻辑才能进行检查。`$null`

对于其中一些类型，以下示例说明如何更新为 V4 编写的用于检查是否未返回任何内容的代码：

```
#Type int:
# In V4, if you were checking whether an int is 0...
if($s3Metadata.MissingMeta -eq 0){}

# In V5, check if the int is null instead:
if($s3Metadata.MissingMeta -eq $null) {}

# Type datetime:
# In V4, if you were checking whether a datetime is '0001-01-01'...
if($s3Metadata.ObjectLockRetainUntilDate -eq '0001-01-01'){}

# In V5, check if the datetime is null instead:
if($s3Metadata.ObjectLockRetainUntilDate -eq $null){}

# Type boolean:
# In V4, if you were checking whether a boolean is $false...
if($s3Metadata.BucketKeyEnabled -eq $false){}

# In V5, check if the boolean is null instead:
if($s3Metadata.BucketKeyEnabled -eq $null)
```

由于 AWS Tools for PowerShell 依赖于 适用于 .NET 的 AWS SDK，因此研究类似的更改如何影响软件开发工具包的版本 4 可能会很有用。要查找此信息，请参阅《[适用于 .NET 的 AWS SDK 开发人员指南》](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/)中的[值类型](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html#net-dg-v4-value-types)迁移内容。

## 集合
<a name="migrating-v5-collections"></a>

某些 cmdlet 输出已更改为返回，`$null`而不是类型`List`为或的空集合。`Dictionary`有关其他信息，包括如何恢复到旧版行为，请参阅[适用于 .NET 的 AWS SDK 开发者指南](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/)中的[集合](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html#net-dg-v4-collections)迁移内容。

## DateTime 对阵世界标准时间 DateTime
<a name="migrating-v5-utc-datetime"></a>

某些 V4 cmdlet 定义了过时的 DateTime 参数以及替代的 UTC 参数。 DateTime这些过时的 DateTime 参数已从 V5 cmdlet 中删除，UTC DateTime 参数的名称已更改为非 UTC 参数的原始名称。 DateTime

以下是已实施此更改的 cmdlet 的一些示例。
+ `Get-ASScheduledAction`（[V4 cmdlet 和 [V](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-ASScheduledAction.html) 5 cmdlet](https://docs.aws.amazon.com/powershell/v4/reference/items/Get-ASScheduledAction.html)）：
  + `StartTime`参数已删除，`UtcStartTime`参数名称已更改为 “StartTime”。
  + `EndTime`参数已删除，`UtcEndTime`参数名称已更改为 “EndTime”。
+ `Copy-S3Object`（[V4 cmdlet 和 [V](https://docs.aws.amazon.com/powershell/v5/reference/items/Copy-S3Object.html) 5 cmdlet](https://docs.aws.amazon.com/powershell/v4/reference/items/Copy-S3Object.html)）：
  + `ModifiedSinceDate`参数已删除，`UtcModifiedSinceDate`参数名称已更改为 “ModifiedSinceDate”。
  + `UnmodifiedSinceDate`参数已删除，`UtcUnmodifiedSinceDate`参数名称已更改为 “UnmodifiedSinceDate”。

以下是受此更改影响的 cmdlet 的完整列表。

### 打开以查看项目
<a name="w2aac19b9c23c11b1"></a>
+ [获取-ASScheduled 操作](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-ASScheduledAction.html)
+ [写-ASScheduled UpdateGroupAction](https://docs.aws.amazon.com/powershell/v5/reference/items/Write-ASScheduledUpdateGroupAction.html)
+ [获取-CWAlarm 历史记录](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-CWAlarmHistory.html)
+ [获取-CWMetric 数据](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-CWMetricData.html)
+ [Get-CWMetric 统计](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-CWMetricStatistic.html)信息（别名 Get-CWMetric 统计信息）
+ [New-EC2Fleet](https://docs.aws.amazon.com/powershell/v5/reference/items/New-EC2Fleet.html)
+ [Get-EC2FleetHistory](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-EC2FleetHistory.html)
+ [Get-EC2ScheduledInstance](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-EC2ScheduledInstance.html)
+ [Get-EC2ScheduledInstanceAvailability](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-EC2ScheduledInstanceAvailability.html)
+ [Get-EC2SpotFleetRequestHistory](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-EC2SpotFleetRequestHistory.html)
+ [Get-EC2SpotPriceHistory](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-EC2SpotPriceHistory.html)
+ [Import-EC2Image](https://docs.aws.amazon.com/powershell/v5/reference/items/Import-EC2Image.html)
+ [Import-EC2Snapshot](https://docs.aws.amazon.com/powershell/v5/reference/items/Import-EC2Snapshot.html)
+ [Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/v5/reference/items/Request-EC2SpotFleet.html)
+ [Request-EC2SpotInstance](https://docs.aws.amazon.com/powershell/v5/reference/items/Request-EC2SpotInstance.html)
+ [Send-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/v5/reference/items/Send-EC2InstanceStatus.html)
+ [Get-ECEvent](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-ECEvent.html)
+ [Get-EBEnvironment](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-EBEnvironment.html)
+ [Get-EBEvent](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-EBEvent.html)
+ [获取-IOTTask 清单](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-IOTTaskList.html)
+ [Get-IOTViolation EventList](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-IOTViolationEventList.html)
+ [Get-RDSEvent](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-RDSEvent.html)
+ [重置-RDSDBCluster](https://docs.aws.amazon.com/powershell/v5/reference/items/Reset-RDSDBCluster.html)
+ [恢复-RDSDBCluster ToPointInTime](https://docs.aws.amazon.com/powershell/v5/reference/items/Restore-RDSDBClusterToPointInTime.html)
+ [恢复-RDSDBInstance ToPointInTime](https://docs.aws.amazon.com/powershell/v5/reference/items/Restore-RDSDBInstanceToPointInTime.html)
+ [获取RSCluster快照](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-RSClusterSnapshot.html)（别名 Get-Snapsh RSCluster ots）
+ [get-RSEvent](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-RSEvent.html)（别名 Get-RSEvents）
+ [Copy-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Copy-S3Object.html)
+ [Read-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Read-S3Object.html)
+ [Get-S3ObjectMetadata](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3ObjectMetadata.html)
+ [发送-SESBounce](https://docs.aws.amazon.com/powershell/v5/reference/items/Send-SESBounce.html)
+ [Get-WDActivity](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-WDActivity.html)

## 管道和 `$AWSHistory`
<a name="migrating-v5-awshistory"></a>

在 V4 AWS Tools for PowerShell 之前的版本中，引入`$AWSHistory`了一个名为的会话变量，用于维护 AWS cmdlet 调用记录和每次调用收到的服务响应。

在 Tools 的 V4 中 PowerShell，此会话变量已被弃用，取而代之的是`-Select *`参数和参数，它们可用于返回整个服务响应。有关`-Select *`参数的描述，请参见[流水线、输出和迭代](pstools-pipelines.md)。

在 “工具” 的 V5 中 PowerShell，会`$AWSHistory`话变量已被完全删除。因此，`Clear-AWSHistory`和 `Set-AWSHistoryConfiguration` cmdlet 也已被删除。

## `-PassThru` 参数
<a name="migrating-v5-passthru"></a>

该`-PassThru`参数已被删除。当 cmdlet 在默认情况下不返回任何输出时，用户可以使用请求返回的参数值。`-Select ^ParameterName`有关更多详细信息和示例，请参阅博客文章 [AWS Tools for PowerShell V5 的 Preview 1](https://aws.amazon.com/blogs/developer/preview-1-of-aws-tools-for-powershell-v5/)。

## 某些 DynamoDB cmdlet 已移动并重命名
<a name="migrating-v5-DynamoDB-cmdlets"></a>

`Get-DDBStream`和 `Get-DDBStreamList` cmdlet 已从 Dynamo DBV2 模块移至名为 Dynamo 的新模块。DBStreams它们也分别被重命名为 “[获取-](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-DDBSStream.html) 列表” DDBSStream 和 “[获取-DDBSStream 列表”](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-DDBSStreamList.html)。

## 敏感信息的记录
<a name="migrating-v5-logging"></a>

日志记录行为已更改，因此不太可能在 cmdlet 输出中包含潜在的敏感信息，尤其是在 CI/CD 某些情况下。有关如何恢复到 V4 行为的更多信息和说明，请参阅[敏感信息的记录](additional-security-considerations.md#add-sec-cons-sensitive-logs)。

## 凭证和配置文件解析
<a name="migrating-v5-profile-cred-res"></a>

 AWS Tools for PowerShell 已更新为在解析 cmdlet 的凭据时使用某些环境变量：`AWS_PROFILE`、`AWS_ACCESS_KEY_ID``AWS_SECRET_ACCESS_KEY`、和。`AWS_SESSION_TOKEN`此外，凭证和配置文件的解析顺序也有一些变化。有关更多信息，请参阅 [凭证和配置文件解析](creds-assign.md)。

## 凭据错误消息
<a name="migrating-v5-creds-error-msg"></a>

如果无法获得适当的凭证，则 AWS Tools for PowerShell 返回的错误消息已更改。

在工具的 v4 中，消息类似于以下内容：

```
Get-SFNExecutionList -Region us-west-2
Get-SFNExecutionList: No credentials specified or obtained from persisted/shell defaults.
```

在工具的 V5 中，消息与以下内容类似：

```
Get-SFNExecutionList -Region us-west-2
Get-SFNExecutionList: Failed to resolve AWS credentials. The credential providers used to search for credentials returned the following errors:
... <list of specific exceptions>
```

## 一致的自动迭代
<a name="migrating-v5-auto-iter"></a>

默认情况下，所有分页的 cmdlet 都已更新为自动迭代所有数据。您可以使用 Set [-AWSAuto IterationMode cmdlet](https://docs.aws.amazon.com/powershell/v5/reference/items/Set-AWSAutoIterationMode.html) 恢复此行为。如果你运行`Set-AWSAutoIterationMode -IterationMode v4`，在 v4 中自动迭代的操作仍将自动迭代，但其余操作将恢复为手动迭代。要确定自动迭代设置为哪种模式，请使用 Get [-AWSAuto IterationMode cmdlet](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-AWSAutoIterationMode.html)。

[要查看以这种方式更新的 cmdlet 的示例，请参阅 cmdlet（[V4 cmdlet 和 V5 `Get-CWLLogEvent` c](https://docs.aws.amazon.com/powershell/v4/reference/index.html?page=Get-CWLLogEvent.html&tocid=Get-CWLLogEvent) mdlet）。](https://docs.aws.amazon.com/powershell/v5/reference/index.html?page=Get-CWLLogEvent.html&tocid=Get-CWLLogEvent)

有关自动迭代的详细信息，请参阅[迭代分页数据](pstools-pipelines.md#pstools-iteration)。

## S3 cmdlet 已弃用并已替换
<a name="migrating-v5-s3-cmdlets"></a>

对于 Amazon S3，[get-s3acl 和 set-s3acl](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3ACL.html) cmdlet 已被[弃](https://docs.aws.amazon.com/powershell/v5/reference/items/Set-S3ACL.html)用。[改用以下新 cmdlet：[Get-S3BucketACL、ACL](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3BucketACL.html)、[Set-S3BucketACL](https://docs.aws.amazon.com/powershell/v5/reference/items/Set-S3BucketACL.html)、[Get-S3ObjectSet-S3ObjectACL](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3ObjectACL.html)。](https://docs.aws.amazon.com/powershell/v5/reference/items/Set-S3ObjectACL.html)

## 清理和修剪 S3 关键参数
<a name="migrating-v5-s3-param-trim"></a>

某些 Amazon S3 cmdlet 接受名为`Key`和的参数。`KeyPrefix`的 V4 AWS Tools for PowerShell 将通过以下方式清理和修剪这些参数：删除前导空格、正斜杠（“/”）和反斜杠（“\$1”），将所有其他反斜杠转换为正斜杠，并删除尾随空格。在 V5 版本的 Tools 中 PowerShell，这不再是默认行为。您可以通过指定`-EnableLegacyKeyCleaning`参数恢复到此行为。

此信息适用于以下 cmdlet：
+ [Copy-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Copy-S3Object.html)
+ [Get-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3Object.html)
+ [Get-S3ObjectV2](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3ObjectV2.html)
+ [Read-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Read-S3Object.html)
+ [Remove-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-S3Object.html)
+ [set-s3acl](https://docs.aws.amazon.com/powershell/v5/reference/items/Set-S3ACL.html)
+ [Write-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Write-S3Object.html)

## 交互式会话功能
<a name="migrating-v5-interactive-session"></a>

交互式会话功能已添加到 [Star SSMSession t-](https://docs.aws.amazon.com/powershell/v5/reference/items/Start-SSMSession.html) cmdlet 中，该功能与行为一致。 AWS CLI 例如：

```
Start-SSMSession -Target 'i-1234567890abcdef0'
```

如果您需要传统行为，`Start-SSMSession`请在命令中包含该`-DisablePluginInvocation`参数。

## CloudWatch 警报
<a name="migrating-v5-Get-CWAlarm"></a>

[Get-CWAlarm](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-CWAlarm.html) cmdlet 已更新，默认情况下会同时返回指标和复合亚马逊 CloudWatch 警报。要将输出限制为指标警报或复合警报，必须分别指定`-AlarmType`参数：`Get-CWAlarm -AlarmType 'MetricAlarms'`或`Get-CWAlarm -AlarmType 'CompositeAlarms'`。

## `LitJson`
<a name="migrating-v5-LitJson"></a>

 AWS Tools for PowerShell 已更新为`LitJson`用于`System.Text.Json`代替序列化。 `LitJson`已从工具的 V5 中移除。

## `LoggedAt`输出属性
<a name="migrating-v5-loggedat"></a>

`LoggedAt`输出属性已被删除。在工具的 V4 中，某些 cmdlet（例如`Get-SSMCommandInvocationDetail`和）默认返回此属性。`Invoke-LMFunction`

如果需要复制 output 属性提供的信息，可以在脚本中加入类似以下内容的内容：`LoggedAt`

```
$loggedAt = (Get-Date).ToUniversalTime().ToString('s')
```

## 已移除的编程元素
<a name="migrating-v5-removed"></a>

已从 “工具” 的 V5 中删除了许多编程元素。 PowerShell下面列出了这些内容（如果之前尚未介绍），以及您可以采取哪些可能的措施来适应将其移除（如果有）。
+ 这个 `Invoke-LMFunctionAsync` cmdlet。
+ 这个 `Get-EC2ImageByName` cmdlet。改用 [Get-SSMLatest EC2 Image](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-SSMLatestEC2Image.html) cmdlet。
+ 来自 [Write-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Write-S3Object.html)cmdlet 的`CalculateContentMD5Header`参数。