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:
A z poziomu powershella można o tak:
PS WSMan:\localhost\Shell> Set-Item MaxMemoryPerShellMB 1024
Życie uratowałeś !!!