如何在具有多个输出的Invoke-Command中使用多个命令

时间:2019-09-27 11:57:25

标签: windows powershell powershell-2.0

目前,我有以下Invoke-Command

Invoke-Command -ComputerName $i -ScriptBlock ${Function:query} `
    -Credential oracle -ArgumentList $metconexao,$dumpdir,$i > $arq

意识到Invoke-Command的输出已放入$arq变量中。

现在我需要执行以下操作:

Invoke-Command -ComputerName $i -ScriptBlock ${Function:query, commandTwo} `
    -Credential oracle -ArgumentList $metconexao,$dumpdir,$i > $arq > outputTwo

我需要在另一个变量/文件中输出commandTwo

有什么办法吗?

1 个答案:

答案 0 :(得分:4)

创建一个PowerShell会话,并在同一会话中使用单独的Invoke-Command语句运行每个命令:

$s = New-PSSession -Computer $i -Credential oracle
Invoke-Command -Session $s -ScriptBlock ${function:query} -ArgumentList $metconexao,$dumpdir,$i > $arq
Invoke-Command -Session $s -ScriptBlock { commandTwo } -ArgumentList $metconexao,$dumpdir,$i > outputTwo

请注意,> $arq不会将输出写入变量 $arq,而是写入以该变量的 value 命名的文件中。