2015-07-08 5 views
-1

Я пытаюсь запустить exe (это было написано в доме) с помощью powershell. EXE интенсивно использует память, используя время от 12 до 15 концертов (это ночная работа). Exe отлично работает, и он был перенесен на собственную машину с 32 гигабайтами оперативной памяти. Вместо того, чтобы использовать WINAT или что-то, чтобы запланировать его, я хотел бы использовать powershell для централизации, где все ночные процессы запускаются и выполняются удаленно. Тем не менее, я постоянно сталкиваюсь с проблемами памяти (из того, что показали мои поиски). Я получаю это сообщение на вызывающей машине - «Процесс WS Man не ответил на правильный ответ. Поставщик в хосте может вести себя ненадлежащим образом». Поэтому я начал менять значение MaxMemoryPerShell, и я мог бы иногда запускать exe, хотя мне еще нужно его закончить. Это установка, я имею в виду:Удаленное выполнение интенсивной памяти exe с powershell

Get-Item WSMan: \ локальный \ Shell \ MaxMemoryPerShellMB

Я попытался установить, что 15 концертов на целевой машине и не везло. Есть ли у кого-нибудь опыт вызова процессов интенсивной памяти с помощью powershell? Я не понимаю, что нужно установить maxmemory, какие машины нужно установить, или если есть другие настройки, о которых я не знаю.

Заранее благодарим за любую помощь.

EDIT: Вот вызов, я использую в PowerShell:

invoke-command -ComputerName targetmachine.mydomain.com -Scriptblock{cd "D:\Code";.\MyProcess.exe N 30}

"N" и 30 и параметры, передаваемые в ехе.

+0

Вы можете прыгать на удаленной машине и наблюдать wsmprovhost .exe и посмотреть, не достигает ли он около 15 ГБ? Удаленный сценарий выводит переменную $ pid, чтобы вы знали, что идентификатор процесса находится на удаленном компьютере. Возможно, ему нужно 16 ГБ или что-то другое происходит, если оно не приближается к этому пределу. –

+0

Пожалуйста, отправьте код о том, как вы начинаете удаленный процесс. Используйте 'Start-Process', если вы этого еще не сделали, чтобы ваш сеанс Powershell не увеличивался. – Vesper

+0

Я отредактировал сообщение, чтобы включить код, который я использую, чтобы вызвать процесс. – AS2012

ответ

0

Я закончил с использованием PSEXEC, работает как чемпион. Нет проблем с памятью.

0

Недостаточно обновить значение WSMan:\localhost\Shell\MaxMemoryPerShellMB. Вам также необходимо обновить это значение в конфигурации плагина. Таким образом, следующий сценарий помог мне увеличить максимально допустимое использование памяти «хост-процесс для WinRM плагинов» (wsmprovhost.exe) до 8 Гб на целевой машине:

Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 8192 
Set-Item WSMan:\localhost\Plugin\microsoft.powershell\Quotas\MaxMemoryPerShellMB 8192 
Restart-Service WinRM