我正在尝试使用TFS构建在post构建脚本中执行几个aws cmdlet命令。我在构建控制器中安装了AWS SDK工具。我可以在Build controller中手动运行相同的命令。但是当我在TFS post build脚本中调用这些命令时。它给我一个错误,它无法找到安装在构建控制器上的cmdlet。我试图改变执行政策,但没有帮助。我有一个执行政策 - 现在绕过。脚本正在执行但只有命令无法执行。我认为这是因为执行政策之类的问题。当我们从power shell调用任何第三方cmdlet时,我们是否需要检查其他任何相同的执行策略。
命令:
Set-AWSCredentials -AccessKey -SecretKey
Set-DefaultAWSRegion -Region us-east-1
Write-S3Object -BucketName agero-source-package -File "\\b tfadfa\adfa\adf\asdf\adsf\asdf\asd\xyz.zip"
错误:
Set-DefaultAWSRegion : The term 'Set-DefaultAWSRegion' 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 \\b-tfsbc001wv\c$\MV\BuildETA-API.ps1:41 char:26
+ cd "\\b-tfsbc001wv\C$" | Set-DefaultAWSRegion -Region us-east-1
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Set-DefaultAWSRegion:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Write-S3Object : The term 'Write-S3Object' 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 \\b-tfsbc001wv\c$\MV\BuildETA-API.ps1:43 char:26
+ cd "\\b-tfsbc001wv\c$" | Write-S3Object -BucketName agero-source-package -File " ...
+ ~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Write-S3Object:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
答案 0 :(得分:1)
从错误消息中可以看出,无法通过运行TFS构建过程的任何帐户找到/自动加载AWSPowerShell模块。
检查模块是否已安装到全局可用位置,在该位置下,您搜索模块的PowerShell版本或模块文件夹的路径存在于TFS构建帐户的$ PSModulePath环境变量中。
答案 1 :(得分:0)
我收到此错误,直到我使用“以管理员身份运行”运行Powershell。所以问题可能在于权限。
答案 2 :(得分:0)
我在TFS Build Agent上遇到了相同的错误:
Set-DefaultAWSRegion:术语'Set-DefaultAWSRegion'不被识别为cmdlet,函数,脚本文件或可运行程序的名称。检查拼写 名称,或者是否包含路径,请验证路径是否正确,然后重试。
我安装了AWS Command Line Interface x64位(AWSCLI64)之后,我可以通过跳过代码行来设置Set-DefaultAWSRegion
。