■呼び出し元に返す値についてまとめみた
#オブジェクト出力するものは返すと理解
#set-aclコマンドレットの実行結果などもそのまま返す
# called.ps1
try{
Write-Host "write-host" #呼び出し元に返さない
Write-Output "write-out" #呼び出し元に返す
throw "dammy error" # catchに飛ぶ
return 1 # 上のthrow文がなければ呼び出し元に返してこのスクリプトの処理はここで終わり
Write-Output "after return" #実行されない
}catch [exception] {
Write-Output "error catch" #呼び出し元に返す
$error[0] #呼び出し元に返す
}
# call.ps1
PS C:\WINDOWS\system32> C:\Users\custmor\Desktop\test\call.ps1
$ret = Invoke-Command -ComputerName $env:COMPUTERNAME -ScriptBlock { C:\Users\custmor\Desktop\test\called.ps1 }
write-host "---"
$ret.Length
$ret[$ret.Length -1]
$ret[0]
$ret[1]
$ret[2]
PS C:\WINDOWS\system32> $ret[0]
write-out
PS C:\WINDOWS\system32> $ret[1]
error catch
PS C:\WINDOWS\system32> $ret[2]
dammy error
発生場所 C:\Users\custmor\Desktop\test\called.ps1:4 文字:5
+ throw "dammy error"
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (dammy error:String) [], RuntimeException
+ FullyQualifiedErrorId : dammy error