Question

J'ai essayé un certain nombre de façons de le faire, ils ont tous fait la même erreur. Voici une série de commandes:

$s = New-PSsession -ComputerName ServerA
$job = Invoke-Command -Session $s -Scriptblock { Start-Process -FilePath    
    "C:\Scripts\ArchiveEventLogs\ver4.5\7za.exe" -ArgumentList "a", 
    "C:\Scripts\Eventlogs.bak\ServerA-20101111.7z", "C:\Scripts\Eventlogs.bak\*.evt*", 
     "-mx7", "-oC:\Scripts\Eventlogs.bak", "-wC:\Scripts\Eventlogs.bak", "-t7z" -Wait }  
     -AsJob

Get-Job | Wait-Job
Receive-Job Job$

La sortie que je reçois est ceci:

7-Zip (A) 9.17 beta  Copyright (c) 1999-2010 Igor Pavlov  2010-10-04
Scanning

Creating archive C:\Scripts\Eventlogs.bak\ServerA-20101111.7z

ERROR: Can't allocate required memory!

Comment puis-je obtenir passé cette erreur ???

Je tiens à souligner, si je lance directement la ScriptBlock sur ServerA sans Remoting, cela fonctionne. Merci pour toute aide!

Était-ce utile?

La solution

coquilles à distance sont limitées à 150 Mo de mémoire par défaut. Vous pouvez modifier cela avec l'utilitaire winrm ligne de commande sur le serveur; Je ne sais pas si le powershell wsman:. \ Lecteur vous permet de changer cette façon interactive parce que je pense que c'est une propriété générale de la fonctionnalité du plugin shell dans winrm et non directement connecté à powershell

C:\Windows\system32>winrm get winrm/config/winrs
Winrs
    AllowRemoteShellAccess = true
    IdleTimeout = 180000
    MaxConcurrentUsers = 5
    MaxShellRunTime = 2147483647
    MaxProcessesPerShell = 15
    **MaxMemoryPerShellMB = 150**
    MaxShellsPerUser = 5

Compresser des fichiers volumineux est un processus gourmands en mémoire.

Autres conseils

Une autre solution est de changer le configuraiton de Windows à distance Shell.

Vous pourriez exécuter ce qui suit dans une invite PowerShell sur le serveur distant:

Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048

Ceci est particulièrement utile si vous ne voulez pas appliquer la modification via la stratégie de groupe.

Ps: Pour voir ce que la valeur actuellement configurée est d'essayer d'exécuter ce qui suit:

Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top