10

我正在尝试使用调用命令在远程计算机上执行 exe。使用远程桌面登录机器后在远程机器上执行exe需要1GB内存,一分钟后执行完成。而当我在同一台机器上使用 Invoke-Command 执行相同的 exe 时,该过程会返回 OutOfMemoryException 并突然结束。我的调用命令就像Invoke-Command -Session $someSessionVariable -ScriptBlock {Invoke-Expression "abc.exe --arg arg"} -AsJob.

我是否遗漏了有关远程调用限制的内容?

提前致谢。

4

3 回答 3

11

完整的 PowerShell 脚本,基于mjolinor的回答,适用于任何想要跳过原因并使其工作的人:

Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1000000
Set-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB 1000000
Restart-Service WinRM
于 2016-02-24T13:08:46.080 回答
7

从:

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

远程 shell 的默认内存限制为 150MB

MaxMemoryPerShellMB 指定每个 shell 分配的最大内存量,包括 shell 的子进程。默认值为 150 MB。

于 2012-03-12T13:02:25.120 回答
0

作为 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

于 2014-11-13T18:25:35.027 回答