Как я могу получить 7za.exe, чтобы запустить через отступление PowerShell?
-
09-10-2019 - |
Вопрос
Я пробовал ряд разных способов сделать это, все они приводят к той же ошибке. Вот один набор команд:
$s = New-PSsession -ComputerName ServerA
$job = Invoke-Command -Session $s -Scriptblock { Start-Process -FilePath
"C:\Scripts\ArchiveEventLogs\ver4.5\7za.exe" -ArgumentList "a",
"C:\Scripts\Eventlogs.bak\ServerA-20101111.7z", "C:\Scripts\Eventlogs.bak\*.evt*",
"-mx7", "-oC:\Scripts\Eventlogs.bak", "-wC:\Scripts\Eventlogs.bak", "-t7z" -Wait }
-AsJob
Get-Job | Wait-Job
Receive-Job Job$
Выход я получаю это:
7-Zip (A) 9.17 beta Copyright (c) 1999-2010 Igor Pavlov 2010-10-04
Scanning
Creating archive C:\Scripts\Eventlogs.bak\ServerA-20101111.7z
ERROR: Can't allocate required memory!
Как я могу получить прошлое эту ошибку ???
Я должен указать, если я запускаю скриптблок прямо на Servera без удаления, он работает. Спасибо за любую помощь!
Решение
Удаленные раковины ограничены на 150 МБ памяти по умолчанию. Вы можете настроить это с помощью утилиты командной строки WinRM на сервере; Я не уверен, если PowerShell WSMAN: Drive позволит вам менять это интерактивно, потому что я думаю, что это общее свойство функциональности плагинов Shell в WinRM и не напрямую подключена к PowerShell.
C:\Windows\system32>winrm get winrm/config/winrs
Winrs
AllowRemoteShellAccess = true
IdleTimeout = 180000
MaxConcurrentUsers = 5
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 15
**MaxMemoryPerShellMB = 150**
MaxShellsPerUser = 5
Сжатие больших файлов - это голодный в памятьем.
Другие советы
Другое решение состоит в том, чтобы изменить конфигурировать конфигурацию удаленной оболочки Windows.
Вы можете выполнить следующее в приглашении PowerShell на удаленном сервере:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
Это особенно полезно, если вы не хотите применять изменение по групповой политике.
PS: Чтобы посмотреть, какое текущее настроенное значение пытается выполнить следующее:
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB