none
PowerShell-Fehler bei Invoke-Command RRS feed

  • 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

    Freitag, 10. Februar 2012 12:55

Alle Antworten

  • Vielleicht das ?
    http://discoveryofagile.blogspot.com/2010/09/time-synchronization-and-powershell.html

    w32tm /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

    Freitag, 10. Februar 2012 15:37
  • Hallo Peter,

    Danke für Deinen Tipp. Leider hat der nichts gebracht. Gleicher Fehler wie bisher.

    Gruß
    net8ios

    Freitag, 10. Februar 2012 16:42
  • 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".

    Freitag, 10. Februar 2012 21:27
    Moderator
  • 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
    Sonntag, 12. Februar 2012 14:41