PowerShell から 7za.exe (7-zip のスタンドアロン バージョン) でアーカイブを解凍しようとしています。基本的に、すべてのサービス コードを取り除くと、私の試みは次のようになります。
[string]$pathTo7z = "$env:TEMP\7za.exe"
[Array]$arguments = "x", $dist, "-o$targetDir"
& $pathTo7z $arguments 2>&1
は$dist
、ZIP ファイルへのローカル パスです。は$targetDir
、ローカル ディレクトリへのフル パスです。
リモート処理を行わずにローカルでそのまま実行すると、問題なく 7za.exe の出力が得られます。cmd.exe から実行した場合とまったく同じです。
ここで、リモート セッションで実行すると問題が発生します。
....
Invoke-Command -Session $s -ScriptBlock {
....
[string]$pathTo7z = "$env:TEMP\7za.exe"
[Array]$arguments = "x", $dist, "-o$targetDir"
& $pathTo7z $arguments 2>&1
}
もちろん、そのリモート PC などに 7za.exe が存在することを確認します。したがって、この方法で実行すると、非常に奇妙な動作が見られます。7za.exe の出力が表示された後、ハングします。しばらくすると (150 MB の zip を解凍するのに必要な時間と比較して十分長い)、次のように出力されます。
WARNING: The network connection to MyServer has been interrupted. Attempting to reconnect for up to 4 minutes...
WARNING: Attempting to reconnect to MyServer ...
WARNING: The network connection to MyServer has been restored.
時々、実行を再開し、さらに出力します。しかし、多くの場合、ジョブを完了できず、次のエラーで失敗します。
Processing data for a remote command failed with the following error message: The WinRM client cannot process the request. The encrypted
message body has an invalid format and cannot be decrypted. Ensure that the service is encrypting the message body according to the
specifications. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OperationStopped: (MyServer:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : JobFailure
+ PSComputerName : MyServer
あれは何でしょう?ローカルで実行したときと同じように、コンソール EXE 出力を取得するにはどうすればよいですか?