INI 文件出现奇怪的 Powershell `Set-AWSCredentials` 错误

Weird Powershell `Set-AWSCredentials` error with INI file

我正在处理无人值守的 PowerShell 脚本,并希望以正确的方式存储 AWS 凭证。

根据 the documentation,我应该能够像这样将凭据存储在 .ini 文件中

.\myAWSCredentials.ini

[default]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

[namedProfile]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

并使用

将其加载到我的环境中

Set-AWSCredentials -ProfilesLocation .\myAWSCredentials.ini

Set-AWSCredentials -ProfileName namedProfile -ProfilesLocation .\myAWSCredentials.ini

但我收到一个没有意义的错误 — PowerShell 与 App.config 文件有什么关系?

Set-AWSCredentials : Error loading stored credentials, (profile location = '.\myAWSCredentials.ini'). Error: App.config does not contain credentials information. Either add the AWSAccessKey and AWSSecretKey or AWSProfileName. At line:1 char:1 + Set-AWSCredentials -ProfilesLocation .\myAWSCredentials.ini + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Set-AWSCredentials], ArgumentException + FullyQualifiedErrorId : System.ArgumentException,Amazon.PowerShell.Common.SetCredentialsCmdlet

在对此进行调查后发现,我们在处理最新版本(3.1.31.0 之后)中的 .ini 格式文件时存在错误,我现在正在修复该错误。

如果您没有使用这些版本之一(我认为您不是基于这些版本中已修复的消息),请尝试将凭证文件的完整路径提供给 -ProfilesLocation -就 PowerShell 而言,'current path' 可能不是您认为的那样,当 cmdlet 运行s(我已经 运行试图从我的个人资料访问)。

我会在解决问题后进一步更新。

我认为如果你完全限定路径它应该工作......相对路径是邪恶的。

例如使用: 设置-AWSCredentials -ProfilesLocation c:\Path\to\file\myAWSCredentials.ini

您可以按照 Powershell 用户指南轻松存储凭据

Set-AWSCredentials -AccessKey xxxxxxx44Hxxxxxxx -SecretKey WVBUyB5ylBWtpxxxxxxxxxxxxxxxxxxxxxxxxxxx -StoreAs awskeys