Wie kann ich 7za.exe über Powershell Remoting laufen?
-
09-10-2019 - |
Frage
Ich habe eine Reihe von verschiedenen Möglichkeiten versucht, dies zu tun, sie alle zu den gleichen Fehlern. Hier ist ein Satz von Befehlen:
$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$
Der Ausgang I erhalten, ist dies:
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!
Wie kann ich an diesen Fehlern bekommen ???
Ich mag darauf hinweisen, wenn ich das Script direkt auf ServerA ohne Remote laufe, es funktioniert. Vielen Dank für jede Hilfe!
Lösung
Remote Schalen werden zu 150 MB Speicher standardmäßig beschränkt. Sie können diese zwicken mit dem winrm Befehlszeilenprogramm auf dem Server; Ich bin mir nicht sicher, ob die Powershell wsman:. \ Laufwerk lassen Sie diese interaktiv ändern, weil ich denke, es ist eine allgemeine Eigenschaft der Shell-Plugin-Funktionalität in winrm und nicht direkt mit Powershell verbunden
C:\Windows\system32>winrm get winrm/config/winrs
Winrs
AllowRemoteShellAccess = true
IdleTimeout = 180000
MaxConcurrentUsers = 5
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 15
**MaxMemoryPerShellMB = 150**
MaxShellsPerUser = 5
Komprimieren von großen Dateien ist ein speicherhungrigen Prozess.
Andere Tipps
Eine andere Lösung ist es, die configuraiton der Windows Remote Shell zu ändern.
Sie können die folgenden in einer Powershell-Eingabeaufforderung auf dem Remote-Server ausgeführt werden:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
Dies ist besonders nützlich, wenn Sie die Änderung über die Gruppenrichtlinie nicht anwenden möchten.
Ps: Um zu sehen, was die aktuell konfigurierten Wert versuchen wird die Ausführung der folgenden Schritte aus:
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB