在PowerShell命令的远程运行下将文件夹压缩为zip格式时,出现“ System.OutOfMemoryException”
PS > Compress-Archive -Path \\myserver1\Backup\8159 -DestinationPath \\myserver1\Backup\8159.zip
直接在myserver1计算机中运行如下所示的命令,然后获取Exception calling "Write" with "3" argument(s): "Stream was too long."
PS > Compress-Archive -Path E:\Backup\8159 -DestinationPath E:\Backup\8159.zip
我也在下面验证了
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB
WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Shell
Type Name SourceOfValue Value
---- ---- ------------- -----
System.String MaxMemoryPerShellMB 2147483647
Get-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB
WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\microsoft.powershell\Quotas
Type Name SourceOfValue Value
---- ---- ------------- -----
System.String MaxMemoryPerShellMB 2147483647
有人可以帮我吗?
预先感谢...
答案 0 :(得分:0)
如the docs中所述,Compress-Archive cmdlet依赖于Microsoft .NET API System.IO.Compression.ZipArchive来压缩文件。
它指出“因此,最大文件大小为2 GB。这是基础API的限制。”
如果要压缩的数据超出该限制,则会出现此错误。
也许您最好使用7Zip。 您可以在PSGallery中找到模块7Zip4Powershell。