powershell - 詹金斯-> powershell Invoke-WebRequest 与 UseDefaultCredentials
问题描述
我尝试在 Jenkins 从站上执行 PowerShell 脚本。看起来像:
stage ("Get") {
steps {
powershell(
script: '''
$srcCommonParams = @{
Method = 'GET'
Uri = $getUri
}
Invoke-WebRequest @srcCommonParams -UseDefaultCredentials -Verbose
问题是默认凭证来自哪里?我认为它们是代表我的 Jenkins 从属 Windows 服务运行的那些。问题是我的 Jenkins slave 以用户 A身份运行,但 Invoke-WebRequest 抱怨用户 B没有足够的权限来执行请求。
解决方案
您必须从 Jenkins 那里获得凭据。您必须添加“withCredentials”并在类似于此的 powershell 中:
stage ("Get") {
steps { withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'your-credentials-id',usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']])
powershell(
script: '''
$encryptedPassword = ConvertTo-SecureString "%PASSWORD%" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("%USERNAME%", $encryptedPassword)
$srcCommonParams = @{
Method = 'GET'
Uri = $getUri
}
Invoke-WebRequest @srcCommonParams -Credential $mycreds -Verbose
推荐阅读
- java - 如何将节点的边界固定到其中的内容
- r - 如何折叠列表中的值以允许将数据框中的列表列转换为向量?
- ios - 将数据添加到 AnyObject Var 的问题,以便我可以制作原生广告
- axios - Nuxt vuex - 从 Vue 迁移存储
- java - 从二叉树构建 BST 的最佳实践
- flask - Flask-migrate 在环境更改后不会更新或迁移更改
- angular - Angular angular-auth-oidc-client 问题想要读取 authzData 但没有找到
- python - 保存模型 django 中的图像列表
- javascript - 使用 Selenium 和 Python 将 html 发送到富文本框的问题
- c# - 具有集合绑定的 UserControl 始终返回 Null