我正在尝试通过以下方式使用Powershell脚本运行一些SQL SERVER命令:启用“集成安全性”(期望使用Winodows Access连接SQL服务器),然后将该Powershell脚本调用到Jenkins Pipeline中,但是它向我抛出“无法连接”错误定位到目标服务器“ ABC \ SQL17”。请验证连接信息,例如服务器名称,登录凭据和防火墙”
我尝试了以下步骤 1.创建“ Jenkins管道” Jenkins工作 2.在Pipeline脚本下调用Groovy脚本以调用Powershell脚本。 3.将“我的Windows登录详细信息”凭据添加为“全局”,并将此凭据与Jenkins登录用户相关联。 4.并与同一用户安排工作。
我希望Jenkins使用Windows凭据来运行此Powershell,但是它没有使用我给出的相同凭据,并且由于用户没有访问权限而导致了抛出错误
以下是示例脚本,我曾经在groovy脚本中使用批处理文件调用Powershell
node {
stage('Deploy Dacpac to SQL Server') {
script{
bat 'start cmd.exe /c D:\\Source\\Test.bat'
}
}
}
请告知我如何使用我的凭据来运行此类脚本。
预先感谢您的回复!
答案 0 :(得分:0)
在寻找了一些文章和博客后,我找到了解决方案,我将项目类型从Pipeline更改为Free Style项目,并在Build Step选项卡下直接调用了Power Shell脚本。
并使用了构建环境中的秘密密钥,并通过加密为存储的用户名和密码提供了两个变量(使用凭据插件进行加密和屏蔽密码)。
您可以使用以下脚本
$SrvPassword = ConvertTo-SecureString "$($ENV:SrvPassword)" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("$ENV:SrvUser", $SrvPassword)
$SessionDetails = New-PSSession -ComputerName "ServerName" -Credential $Credential
Invoke-Command -Session $SessionDetails -Command {
C:\Test.ps1
}