Deployment Linux在没有SSH/Telnet的远程Windows服务器上执行命令
我正在建立一个詹金斯服务器。部署步骤之一是在生产服务器上执行命令,将经过UAT测试的工件下载到所需的文件夹中。Jenkins在CentOS Linux上运行,而生产服务器在运行Windows 2008 R2 但是,我的客户机不希望在生产服务器中安装任何软件,因此无法通过SSH执行命令。该客户以前在使用Telnet时有过不愉快的经历。这是一个不安全的服务,已在服务器上禁用Deployment Linux在没有SSH/Telnet的远程Windows服务器上执行命令,deployment,jenkins,continuous-integration,cross-platform,remote-access,Deployment,Jenkins,Continuous Integration,Cross Platform,Remote Access,我正在建立一个詹金斯服务器。部署步骤之一是在生产服务器上执行命令,将经过UAT测试的工件下载到所需的文件夹中。Jenkins在CentOS Linux上运行,而生产服务器在运行Windows 2008 R2 但是,我的客户机不希望在生产服务器中安装任何软件,因此无法通过SSH执行命令。该客户以前在使用Telnet时有过不愉快的经历。这是一个不安全的服务,已在服务器上禁用 除了使用SSH和Telnet,还有其他方法在远程机器上执行命令吗?我正在考虑创建一个由特定事件触发的任务,但是如何在服务器上远
除了使用SSH和Telnet,还有其他方法在远程机器上执行命令吗?我正在考虑创建一个由特定事件触发的任务,但是如何在服务器上远程引发该事件似乎不是一件容易的工作 我可以想出四种不同的解决方案:
$username = 'user'
$password = 'password'
$appHost = 'hostname'
$dest = 'C:\Unpack\'
$archive = "C:\Releases\new release.7z"
$securePass = ConvertTo-SecureString -AsPlainText $password -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $username,$securePass
"Create PowerShell Session"
$appSession = New-PSSession -ComputerName $appHost -Credential $cred -Authentication CredSSP
invoke-command -session $appSession -scriptblock { param($dest,$archive) & 'C:\Program Files (x86)\7-Zip\7z.exe' x -bd -aoa """-oc:\$dest""" """c:\$dest\$archive"""} -args $dest,$archive
$remotelastexitcode = invoke-command -session $appSession -ScriptBlock { $lastexitcode }
if ( $remotelastexitcode -ne 0 )
{
"Archive Extraction Failed. Is a file locked or open?"
exit -1
}
@凯特·格雷戈里,谢谢你批改课文!这怎么能在Linux机器上运行呢?谢谢Stuart,你提供了很多选择!我喜欢选项3,并将尝试一下。