4 つの異なる解決策を考えることができます。
Jenkins サーバーがトリガー ファイルを配置できるネットワーク共有を実稼働マシンに用意します。そのファイルをチェックしてダウンロードをトリガーするスケジュールされたタスクを用意します。
本番マシンでスケジュールされたタスクが Jenkins サーバーに新しいファイルをポーリングするようにします。Powershell を使用して、Jenkins REST API にクエリを実行できます。
運用マシンに IIS がある場合は、Jenkins に asp.net スクリプトをトリガーさせるか、cgi スクリプトに対してフォーム POST を実行させるか、トリガー ファイルをアップロードさせます。CentOS の curl と wget が役立ちます。
最後の手段として、別の Windows マシンをミックスに追加します。その上に SSH をインストールします。Jenkins から新しいマシンに SSH を使用してから、新しいマシンから運用マシンに powershell を使用します。
ステップ 4 に決定した場合は、Power Shell を使用してリモート マシンでコマンドを実行します。
Windows 2008 R2 には、デフォルトで PS2.0 がインストールされています。
これが私がそれを行う方法の例です。
$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
}