在远程计算机上执行 Powershell 代码,然后在本地计算机上使用结果

Execute Powershell code on remote computer and then use result on local computer

我知道,要在远程计算机上执行代码,我必须使用 -ArgumentList 和 param 将变量传递给远程主机。

谁能提示我,如何在远程计算机上执行代码,然后在本地计算机上使用结果?

我的代码,用于确定远程计算机上的空闲 space,并且根据结果 - 如果远程主机没有足够的 space:

,则构建失败
$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 变量值仅存在于远程计算机上,如果 "$LastExitCode = 1" & "exit $LastExitCode""-scriptblock {"[=15= 之外执行,Jenkins 仅构建失败]

$diskSpace = 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 
    }
}

注意 Invoke-Command 之前的 $diskSpace。这应该可以解决问题![​​=11=]