如何使用jenkins声明性管道凭据并转换为powershell凭证?
使用
environment {
APPLICATION_SERVER_CRED = credentials('app-cred')
}
简单地使用转换后的安全字符串似乎不能很好地工作,因为PSCredential构造函数需要不同的类型:String和SecureString
PSCredential(String, SecureString)
如何获取由jenkins管道
创建的环境变量$ENV:APPLICATION_SERVER_CRED_USR
$ENV:APPLICATION_SERVER_CRED_PSW
并将它们转换为变量然后我可以传递给System.Management.Automation.PSCredential的PSCredential构造函数?
在powershell脚本中,运行
时两个环境变量的类型($ENV:APPLICATION_SERVER_CRED_USR).GetType()
是
System.String
不能直接工作,因为构造函数需要不同的类型。
如果jenkins没有将用户名转换为安全文本,我就不会遇到这个问题,因为我会将密码转换为安全字符串并满足PSCredential的contructor参数。但由于它们是安全文本(并且类型为System.String),我不能。
如何转换变量以创建PSCredential?
答案 0 :(得分:0)
$backendServerPass = ConvertTo-SecureString $ENV:APPLICATION_SERVER_CRED_PSW -AsPlainText -Force
$backendServerCredential = New-Object System.Management.Automation.PSCredential ($ENV:APPLICATION_SERVER_CRED_USR, $backendServerPass) -Verbose