我正在尝试从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拉链所需的时间相比),它输出以下内容:
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输出,就像我在本地运行它时一样?
答案 0 :(得分:1)
再次证明,它是ESET NOD32防病毒软件。只需按照here所述的步骤操作即可。
摘自该文章:
我建议的解决此问题的方法是添加例外 PowerShell和协议过滤下的PowerShell ISE>排除 应用: