zwugel Geschrieben 22. April 2016 Geschrieben 22. April 2016 Halli Hallo, ich habe in meiner Firma ein kleines Script geschrieben, welches bei 127 Clients nach einer lokalen Datenbank sucht und mir alle Clients, wo die Datenbank >2 GB ist per Mail zuschickt. Funktioniert auch super, nur mit einer kleinen Einschränkung Einer von den 127 Clients bringt jedesmal einen Fehler, dass er den Typ "System.Object" nicht in "System.Double" konvertieren kann (siehe Fehlermeldung) und somit wir dieser Client auch nicht untersucht. Fehler: Der Wert "System.Object[]" vom Typ "System.Object[]" kann nicht in den Typ "System.Double" konvertiert werden. Bei C:\Users\xxxxxxxx\Desktop\test.ps1:26 Zeichen:21 + if([double]$object <<<< = Get-ChildItem $pfad -Recurse -Force -ErrorAction SilentlyContinue | Where-Object {$_.Name -like "*$dateiname*"} | select-object -expandproperty length ) + CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException + FullyQualifiedErrorId : RuntimeException Wie die Fehlermeldung schon sagt liegt der Fehler in Zeile 26, hier noch der original Codeauschnitt: if([double]$object = Get-ChildItem $pfad -Recurse -Force -ErrorAction SilentlyContinue | Where-Object {$_.Name -like "*$dateiname*"} | select-object -expandproperty length ) Könnt ihr mir helfen und mir sagen wieso das bei 126 Clients klappt und bei genau einem nicht? Danke im Voraus Zitieren
Gast Uhu Geschrieben 22. April 2016 Geschrieben 22. April 2016 (bearbeitet) Das scheint kein rein syntaktisches Problem zu sein, sonst würden die Anderen Clients die gleiche Fehlermeldung liefern. Es liegt also die Vermutung nahe, dass bei diesem einen Client das gelieferte Objekt ein Anderes Objekt ist als du erwartest und welches eben nicht ohne weiteres explizit in Double konvertiert werden kann. Mir ist jetzt nicht wirklich klar, wie du per Powershell die Clients untersuchst (PowershellRemote? RemoteExecution?) - ich tippe daher einfach mal, dass auf deinem Ziel Client eine Andere Powershell Version installiert ist als auf den übrigen Clients, wo Get-Childitem dir noch einen ganz anderen Objekt-Typ liefert als in Anderen Powershell Versionen. Untersuch mal das Objekt genauer, was dir mit Get-Childitem auf diesem Client geliefert wird ohne es direkt in double zu konvertieren und vergleich das mal mit den gelieferten Objekten der Anderen Clients. Bearbeitet 22. April 2016 von Uhu Zitieren
zwugel Geschrieben 22. April 2016 Autor Geschrieben 22. April 2016 Problem gefunden, danke das du mich auf ne Idee gebracht hast. Hab mir die Größe einfach mal ohne Typkonvertierung anzeigen lassen... hier das Ergebnis: ProblemPC: Length : 1103298560 Length : 631439360 VergleichsPC: Length : 1103298560 Der Client gibt mir 2 Werte zurück. Hab mir den Client angeguckt und in dem Ordner den ich untersuche habe ich einen Backupordner gefunden, wo eine andere mdf-Datei mit dem selbem Namen liegt. Vielen Dank für deine Hilfe Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.