如何使用Jenkins管道在Windows 10上自动执行Azure P2S VPN连接

时间:2019-10-30 10:41:09

标签: azure jenkins-pipeline azure-vpn

我已经在Windows计算机上安装了Azure P2S VPN,并且可以手动连接它。我也有一个PowerShell脚本来完成这项工作。 这是脚本:

rasphone  "Azure-VPN"
$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('Network Connections')
Sleep 2
$wshell.SendKeys('~')
Sleep 2
$wshell.SendKeys('~')

$wshell.SendKeys('~')将代替我手动连接时按Enter键。

我可以运行此脚本从命令行成功连接VPN:

> powershell C:\myScript.ps1 True

现在,我想在Jenkins管道上运行此脚本。但这似乎无法实现。

stage('VPN'){       
    bat "powershell C:\\myScript.ps1"
    }

它在Jenkins控制台输出上返回False

我也尝试遵循the accepted answer here,但仍然没有运气(无法从命令行或Jenkins上运行)

 > rasdial Azure-VPN /phonebook:%userprofile%\AppData\Roaming\Microsoft\Network\Connections\Cm\<aLongNumber>\<aLongNumber>.pbk

 Remote Access error 623 - The system could not find the phone book entry for this connection.

有什么解决方法吗?我的目的是使用Jenkins管道打开VPN,通过网络发送一些文件,然后将其关闭。

1 个答案:

答案 0 :(得分:0)

您可以选择使用Jenkin的 Powershell插件,以通过Jenkins在Windows上直接运行Powershell脚本。您可以从this blog获得更多参考。

enter image description here

或者,请参考this SO answer,对于Windows路径,您可以使用Jenkins调用批处理文件

stage('build') {
  dir("build_folder"){
      bat "run_build_windows.bat"
  }
}

stage('build') {
  bat "c://some/folder/run_build_windows.bat"
}