Недостаточно памяти на компресс-архив. Установить Макс. Память? Включить сборку мусора? Исключение типа 'System.OutOfMemoryException' было сгенерировано - PullRequest
0 голосов
/ 14 января 2019

У меня проблема в том, что мой сценарий архивирования PowerShell Archive падает после использования всей памяти моей машины с помощью командлета Compress-Archive.

Цикл for, добавленный ниже, действительно помог, работая только с несколькими файлами одновременно, но я все еще получаю ошибки «Недостаточно памяти» в моих больших файлах, которые я пытаюсь сжать.

Настройка максимального объема памяти PowerShell по-прежнему возможна? Я понимаю, что установленная максимальная память может не работать. Кроме того, я вижу, сборка мусора может быть решением. Где можно разместить сборщик мусора и каков будет соответствующий синтаксис? [System.GC]::Collect()

$ArchiveContents = Get-ChildItem -Path C:\OneDrive | Sort-Object -Descending
for ($i=0; $i -le $ArchiveContents.Count; $i=$i+10) {
    Compress-Archive -Path $ArchiveContents.FullName[$i..($i+9)] -Update -DestinationPath \\Server011\Backup_Archive\CompanyData\Daily\OneDrive.zip -CompressionLevel Optimal
}
if (-not $?) {
    $SMTPServer = "smtp.gmail.com"
    #Redacted ?
    $smtp.Send($message)
} else {
    $SMTPServer = "smtp.gmail.com"
    #Redacted?
    $smtp.Send($message)
}
...