Hallo,
ich arbeite derzeit an einem Commandlet das auf einer Menge Servern Zip-Dateien entpacken soll. Das entpacken der Dateien erfolgt über eine Remote PS-Session um den Netzwerk-Trafic zu minimieren. Die entpackten Dateien können einige GByte groß werden.
Dazu wird die folgende Funktion :
function unzip($file, $destination)
{
Add-Type -assembly "system.io.compression.filesystem"
[io.compression.zipfile]::ExtractToDirectory($file, $destination)
}
wie folgt aufgerufen :
$pss = New-PSSession -ComputerName $_.TerminalServer
Invoke-Command -Session $pss -ScriptBlock ${function:unzip} -ArgumentList $ZipDatei,$ZipPfad
Remove-PSSession -Session $pss
Dabei bekomme ich auf einigen Servern folgende Fehlermeldung:
Ausnahme beim Aufrufen von "ExtractToDirectory" mit 2 Argument(en): "Die am Ende des
zentralen Verzeichnisses erwarteten Einträge entsprechen nicht der Anzahl der Einträge im
zentralen Verzeichnis."
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : InvalidDataException
+ PSComputerName : Test-01
Auf einigen funktioniert das Commandlet aber ohne Macken.
ich habe mittlerweile gelernt das es eine Speicherbegrenzung bei Remote-Sessions gibt und diese entsprechend erweitert:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 4096
Set-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB 4096
Restart-Service winrm
Aber leider hat mir das bei meinem Problem nicht weiter geholfen. Falls jemand einen Schimmer hat wo hier das Problem liegt würde ich mich sehr über einen kurzen Kommentar freuen.
Vielen Dank im Voraus und viele Grüße
Bernd