Исключение OutOfMemory при удаленном выполнении с помощью Powershell Invoke-Command - PullRequest
10 голосов
/ 12 марта 2012

Я пытаюсь выполнить exe-файл на удаленном компьютере с помощью команды invoke.Выполнение exe-файла на удаленном компьютере после входа в систему с помощью удаленного рабочего стола занимает 1 ГБ памяти и завершается через минуту.Принимая во внимание, что когда я выполняю тот же самый exe, используя Invoke-Command на той же машине, процесс возвращает OutOfMemoryException и внезапно завершается.Моя команда вызова проста, как Invoke-Command -Session $someSessionVariable -ScriptBlock {Invoke-Expression "abc.exe --arg arg"} -AsJob.

Я что-то упускаю из-за ограничений на удаленный вызов?

Заранее спасибо.

Ответы [ 3 ]

8 голосов
/ 24 февраля 2016

Полный сценарий PowerShell, основанный на ответе mjolinor , для всех, кто хочет пропустить причины и просто заставить его работать:

Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1000000
Set-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB 1000000
Restart-Service WinRM
7 голосов
/ 12 марта 2012

From:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384372(v=vs.85).aspx

Максимальный предел памяти на удаленных оболочках составляет 150 МБ

MaxMemoryPerShellMB Указывает максимальный объем памяти, выделяемый на оболочку, включая дочерний объект оболочкипроцессы.По умолчанию установлено 150 МБ.

0 голосов
/ 13 ноября 2014

В дополнение к ответу mjolinor вы можете изменить MaxMemoryPerShellMB, выполнив:

sl WSMan:\localhost\Shell
Set-Item MaxMemoryPerShellMB 300

Ссылка: http://blogs.technet.com/b/heyscriptingguy/archive/2013/07/30/learn-how-to-configure-powershell-memory.aspx

...