2

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 出力を取得するにはどうすればよいですか?

4

1 に答える 1

1

繰り返しますが、それは ESET NOD32 アンチウイルスであることが判明しました。こちらで説明されている手順に従うだけで、機能するはずです。

その記事からの抜粋:

この問題を解決するための推奨される方法は、[プロトコル フィルタリング] > [除外されたアプリケーション] の下に PowerShell と PowerShell ISE の例外を追加することです。

ここに画像の説明を入力

于 2013-12-11T13:00:28.500 に答える