2011-04-28 66 views
1

CruiseControl.Net tfs集成需要一个用户名和密码,用于具有相当高权限的用户存储在配置文件中。我不是很喜欢这一点,并试图想方法来安全地存储密码并保持完全自动化的构建。使用Powershell与CruiseControl.Net进行安全密码存储?

PowerShell有与ConvertTo-SecureStringConvertFrom-SecureString命令为这个良好的支持,像这样的处理加密:

"password-string" | ConvertTo-SecureString -AsPlainText -Force | Out-File pwd.dat 

这可以处理解密:

$user = "mydomain\myuser" 
$pwd = Get-Content pwd.dat | ConvertFrom-SecureString 
$cred = New-Object System.Management.Automation.PSCredential($user, $pwd) 

CruiseControl.Net有一个<powershell>任务可以用于运行PowerShell脚本,但我不确定是否可以返回anyhting。我想知道如果有人有关于如何实施与CruiseControl.Net安全密码的任何想法?使用Powershell并不是必要的,我只是认为它会很整洁。

回答

0

找到一个解决方法至少:如果您省略<user>,<password><domain>参数,CruiseControl将使用运行该服务的用户的凭据。

更普遍的问题,是否可能捕捉输出还有待测试。我想可以使用[system]::SetEnvironmentVariable(name,value)设置一个环境变量,但我没有测试过这个。