Powershell: OutOfMemory exception podczas Invoke-Command

6-cze-2014

Podczas wykonywania polecenia

Invoke-Command -computer … -script { … }

wyskakuje błąd:

+ CategoryInfo          : NotSpecified: (:String) [], RemoteException

+ FullyQualifiedErrorId : NativeCommandError

 

Unhandled Exception: OutOfMemoryException.

O co chodzi? W skrypcie przekazywanym o zdalnego wykonania wywoływany był program exe, który korzystał z większej ilości pamięci. Błąd OutOfMemory świadczy o tym, że tej pamięci zabrakło. Zauważ, że w takim przypadku wszelkie mechanizmy obsługi błędów po zdalnej stronie zawodzą, bo przecież brakło pamięci na skrypt!

Jak to naprawić?

Komenda:

winrm get winrm/config/winrs

wyświetli ile pamięci może być wykorzystywane przez sesje zdalne.

Zmień ten parametr poleceniem

winrm set winrm/config/winrs `@`{MaxMemoryPerShellMB=`”512`”`}

Oczywiście oba polecenia wykonujemy na zdalnym systemie.

U mnie to działa!

Komentarze:

  1. Mirek napisał,

    A z poziomu powershella można o tak:
    PS WSMan:\localhost\Shell> Set-Item MaxMemoryPerShellMB 1024

    Życie uratowałeś !!!

Autor: Rafał Kraik