我知道,要在远程计算机上执行代码,我必须使用 -ArgumentList 和 param 将变量传递给远程主机。
谁能提示我,如何在远程计算机上执行代码,然后在本地计算机上使用结果?
我的代码,用于确定远程计算机上的可用空间,并且根据结果 - 如果远程主机没有足够的空间,则构建失败:
$securePassword = ConvertTo-SecureString $env:password -AsPlainText -force
$credential = New-Object System.Management.Automation.PsCredential("$env:login",$securePassword)
Invoke-Command -ComputerName $env:SERVER -credential $credential -scriptblock {
$freespace = Get-PSDrive D
echo $freespace.Free
$DiskDSpace = ($freespace.Free)
If ($DiskDSpace -lt 214748364809999999999999) {
echo "Free space on disk D is less than 20 GB"
$LastExitCode = 1
exit $LastExitCode
}
}
问题是,$DiskDSpace
变量值仅存在于远程计算机上,而 Jenkins 仅 "$LastExitCode = 1"
在"exit $LastExitCode"
外部执行时无法构建"-scriptblock {"