0

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

使用

environment { 
     APPLICATION_SERVER_CRED = credentials('app-cred') 
} 

只需使用转换安全串不会出现,因为PSCredential的构造以及工作的期待不同的类型:字符串和SecureString的

PSCredential(String, SecureString) 

如何采取的环境变量由詹金斯管道创建

$ENV:APPLICATION_SERVER_CRED_USR 
$ENV:APPLICATION_SERVER_CRED_PSW 

并将它们转换为可以传入System.Management.Automation.PSCredential的PSCredential构造函数的变量?

在PowerShell脚本,该类型的两个环境变量的运行

($ENV:APPLICATION_SERVER_CRED_USR).GetType() 

System.String 

直接不会工作,因为构造函数需要不同的类型。

如果詹金斯没有将用户名转换为安全文本,我不会遇到这个问题,因为我会将密码转换为安全字符串并满足PSCredential的构造函数参数。但由于它们是安全文本(并且输入System.String),所以我不能。

如何转换变量以创建PSCredential?

+0

也许我可以将蒙面文本转换为安全字符串? – joey

回答

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