如何使用jenkins声明性管道凭证并转换为powershell凭证?

时间:2017-07-25 00:28:01

标签: powershell jenkins groovy continuous-integration continuous-deployment

如何使用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?

1 个答案:

答案 0 :(得分:0)

哦,凯,是的,这比我想象的要容易。我猜掩码文字只是掩盖它在UI中可见。这有效。

$backendServerPass = ConvertTo-SecureString $ENV:APPLICATION_SERVER_CRED_PSW -AsPlainText -Force
$backendServerCredential = New-Object System.Management.Automation.PSCredential ($ENV:APPLICATION_SERVER_CRED_USR, $backendServerPass) -Verbose