2012-03-12 12 views
7

Sto tentando di eseguire un exe su un computer remoto utilizzando invoke-command. L'esecuzione dell'exe sul computer remoto dopo l'accesso alla macchina tramite desktop remoto richiede 1 GB di memoria e viene completata dopo un minuto. Mentre quando eseguo lo stesso exe usando Invoke-Command sulla stessa macchina, il processo restituisce un'eccezione OutOfMemoryException e termina improvvisamente. Il mio comando invoke è semplice come Invoke-Command -Session $someSessionVariable -ScriptBlock {Invoke-Expression "abc.exe --arg arg"} -AsJob.OutOfMemory Eccezione sull'esecuzione remota utilizzando Powershell Invoke-Command

Mi manca qualcosa per quanto riguarda le restrizioni sull'invocazione remota?

Grazie in anticipo.

+0

Perché si usa anche 'iex' per chiamare un nativo programma? PowerShell è una * shell *. L'esecuzione dei comandi è ciò che fa. – Joey

+0

@Joey - mentre è vero, PowerShell ha MOLTI problemi con il passare gli argomenti a un programma esterno che a volte è più semplice usare semplicemente 'iex' – manojlds

+3

http://blog.patricknielsen.net/2012/01/powershell -remote-system-call-using.html –

risposta

7

Da:

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

Il limite di memoria defult sulla shell remote è 150MB

MaxMemoryPerShellMB Specifica la quantità massima di memoria allocata a guscio, inclusi i processi generati dalla shell. Il valore predefinito è 150 MB.

+0

Grazie per la risposta. La pagina ha molti più parametri di default che uno che usa winrm deve pagare. – manukranthk

+0

L'utilizzo di lavori remoti/in background implica la gestione di spazi di lavoro vincolati e restituzioni di oggetti deserializzati. Potrebbe essere necessario rielaborare ciò che funziona in uno spazio di esecuzione locale/non vincolato per lavorare in quell'ambiente. – mjolinor

4

script di PowerShell completa, in base alla risposta mjolinor s', per chi vuole per saltare i motivi e basta farlo funzionare:

Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1000000 
Set-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB 1000000 
Restart-Service WinRM 
+0

Grazie per aver postato il comando :) –

Problemi correlati