为什么计划任务中的 powershell 运行 无法识别用户目录中的 aws-cli 凭据?
Why does powershell run from scheduled task not recognise aws-cli credentials in user directory?
我有一个 powershell 脚本来存档日志文件。该脚本旨在作为指定用户 'LogArchiver'.
每天从计划任务中 运行
该脚本使用 aws-cli 将文件复制到 S3,并且需要足够的凭据才能访问存储在用户目录 C:\Users\LogArchiver\.aws 中的存储桶,如 aws 文档中所建议的那样。
当我 运行 来自 powershell 终端的脚本 运行ning 作为用户时,它识别凭据并成功地将文件复制到 S3。但是,当它来自计划任务 运行 时,它无法识别 aws 凭据并且将成绩单写入文件会显示消息:
Unable to locate credentials. You can configure credentials by running "aws configure".
有人知道为什么会这样吗?有什么解决办法吗?我在另一个 post 中读到有关计划任务对环境变量做一些有趣的事情,但不确定这是否会导致我遇到的问题。
事实证明这是服务器 2012 中的错误,已通过此补丁修复
https://support.microsoft.com/en-gb/kb/3133689
对我来说 'fix' 是用
更改脚本顶部的 USERPROFILE 环境变量
$env:USERPROFILE = "C:\Users\LogArchiver"
不优雅,但有效。
我有一个 powershell 脚本来存档日志文件。该脚本旨在作为指定用户 'LogArchiver'.
每天从计划任务中 运行该脚本使用 aws-cli 将文件复制到 S3,并且需要足够的凭据才能访问存储在用户目录 C:\Users\LogArchiver\.aws 中的存储桶,如 aws 文档中所建议的那样。
当我 运行 来自 powershell 终端的脚本 运行ning 作为用户时,它识别凭据并成功地将文件复制到 S3。但是,当它来自计划任务 运行 时,它无法识别 aws 凭据并且将成绩单写入文件会显示消息:
Unable to locate credentials. You can configure credentials by running "aws configure".
有人知道为什么会这样吗?有什么解决办法吗?我在另一个 post 中读到有关计划任务对环境变量做一些有趣的事情,但不确定这是否会导致我遇到的问题。
事实证明这是服务器 2012 中的错误,已通过此补丁修复 https://support.microsoft.com/en-gb/kb/3133689
对我来说 'fix' 是用
更改脚本顶部的 USERPROFILE 环境变量$env:USERPROFILE = "C:\Users\LogArchiver"
不优雅,但有效。