我使用下面的命令连接到远程计算机并执行此操作:
$myfile = [System.IO.File]::ReadAllBytes("C:\temp\test.txt")
$session = $null
$session = New-PSSession -computerName $server -credential $user
Invoke-Command -Session $session -ArgumentList $myfile -ScriptBlock {[System.IO.File]::WriteAllBytes("C:\temp\test.txt", $args)}但是我正在努力获取进程的状态,如何获取Invoke-Command的状态
我尝试过如下方法,但不起作用:
try {
Invoke-Command -Session $session -ArgumentList $myfile -ScriptBlock {[System.IO.File]::WriteAllBytes("C:\temp\abc\Bank_Wiz_copy2.txt", $args)}
$Stat = "Success"
}
catch {
$Stat = "Failed"
}发布于 2017-08-09 21:42:19
有很多种方法。但在PowerShell中,Invoke-Command背后的思想是指定的脚本块以与本地脚本相同的方式执行。所以,你可以这样做:
try { Invoke-Command -Session $session -ScriptBlock { Write-Error "err" } -ErrorAction Stop } catch { Write-Host "!" }由于ErrorAction为Stop,Write-Error会产生异常。异常是通过会话传输的,那么您就可以捕获它。
https://stackoverflow.com/questions/45592326
复制相似问题