Fragensteller
PowerShell-Fehler bei Invoke-Command

Allgemeine Diskussion
-
Liebe Powereshell-Gemeinde,
vorab folgendes Szenario, damit ihr besser versteht, warum ich mit dem Commando Invoke arbeite.
Netzwerk mit etwa 50 Clients über 3 Standorte und Länder verteilt (Beisp. Netz A, B, C). Pro Standort steht ein (File)Server. 10 (teilweise mobil mit Notebook) Benutzer sind iPhone-User.
Da ich, wenn ein neues iOS erscheint, dieses dem User automatisiert auf den Rechner kopieren möchten, habe ich ein Powershell-Script geschrieben. iOS-Files sind in der Regel um die 750 bis 800MB groß. Damit habe ich das Problem, dass ich den Copy-Job nicht von einem Standort laufen lassen kann, ohne das es ewig dauert, oder der VPN-Tunnel heiß läuft. Darum möchte ich auf folgende Lösung zurückgreifen: Das Script erkennt anhand der IP, in welchem Netz sich der Client befindet. Wenn er sich im Netz A befindet, soll automatisch die *.ipsw (iOS-File) von Server A bezogen werden, usw...
Da das Script von jedem Server (A, B, C) aus aufrufbar sein soll, greife ich auf den Invoke-Command zurück.
Damit will ich erreichen: Scriptaufruf auf Server A -> Clients ist im Netz von Server B -> Server A mach Invoke zu Server B und erteilt Kopierbefehl
Mein Code dafür:
# Wenn der scriptausführende Server gleich Server "A" ist und der Client sich im Netz von Server "B" befindet if($ExecServer -eq $SrvA -and $CltNet -eq $NetB){ Invoke-Command -ComputerName $SrvB -ScriptBlock {param($IpswFilePath_B, $CltCopyPath) Copy-Item $IpswFilePath_B -Destination $CltCopyPath -Recurse} -ArgumentList $IpswFilePath_B, $CltCopyPath $CltCopyStatus = "1" $OutputString = $CltInstallStatus + ";" + $CltCopyStatus + ";" + $CltDeleteStatus + ";" + $CltComputerName + ";" + $CltUserName + ";" + $IosFileName Out-File -FilePath $SrvOutputFilePath_Local -InputObject $OutputString -Append }
Leider erhalte ich beim Scriptaufruf folgende Execption:
There is a time and/or date difference between the client and server. + CategoryInfo : NotSpecified: (:) [Copy-Item], IOException + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand
Diverse Tests habe ich schon durchgeführt. Es ist zum Beipiel möglich, einen Invoke-Command zu einem der Server zu schicken, um eine Datei von Laufwerk C:\ nach Laufwerk D:\ zu kopieren. Auch PSSession funktioniert wunderbar.
Zeitsync ist im gesamten Netzwerk an.
Kann mir jemand einen Tipp oder eine alternative Lösungsmöglicheit nennen?
Vielen Dank im Vorraus für Eure Bemühungen!
net8ios- Bearbeitet net8ios Sonntag, 12. Februar 2012 14:59
- Typ geändert Denniver ReiningMVP, Moderator Sonntag, 12. Februar 2012 23:24 siehe unten
Alle Antworten
-
Vielleicht das ?
http://discoveryofagile.blogspot.com/2010/09/time-synchronization-and-powershell.htmlw32tm /resync
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace -
Das ist wahrscheinlich kein Powershell-Problem, sondern eines mit der Zeitsynchronisation in eurem Netz. Poste das Problem doch bitte nochmal (Hauptsächlich die Exception, ohne den Code) im Server-Forum.
Abgesehen von dem Fehler: weißt du das iOS seit v5 inkrementelle ("Delta") Updates supported? 5.0.1 war beispielsweise nur 35 MB groß. Falls du diese aus irgendwelchen Gründen nicht nutzen kannst und das komplette Paket ziehen musst: wäre ein Download auf jedem der drei Server aus dem Web nicht schneller und ressourcenschonender? Ins Netz scheinst du ja zu kommen und sicherheitstechnisch ist eine ausgehende HTTP-Verbindung auch kein Problem.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort". -
Hallo Denniver,
Danke für den Hinweis. Werde es im Serverforum posten.
Zu Deiner Anmerkung. Ja, es ist mir bewusst, dass Apple seit iOS v5.0 inkremenelle Updates ausliefert. Jedoch rolle ich generell die ich Fullfille aus, auch im Hinblick auf einen Restore.
Nachtrag zu meinem Szenario: Jeder der drei Server bezieht die iOS-File. Das Script prüft dann, in welchen Netz sich der Client befindet. Es kann ja durchaus sein, dass ein Mobile-User aufgrund einer Dienstreise nicht mehr, wir sonst immer sich in Netz A befindet, sondern in Netz B oder C. Wenn jetzt das Script auf Server A ausgeführt wird und sich der Client in Netz B oder C befindet, wird der Invoke-Command für den Copy-Item-Job entsprechend an den Server in Netz B oder C gesendet, damit das Kopieren netzintern erfolgt.
Link zum Serverforum-Post: Link
- Bearbeitet net8ios Montag, 13. Februar 2012 08:03