Warum scheint das Get-Datum dateTime-Objekte zurückzugeben, aber der Binärerialisierer zeigt an, dass er ein PSObject zurückgibt?

StackOverflow https://stackoverflow.com//questions/9636698

Frage

Nehmen Sie das einfache Hashtable : generasacodicetagpre.

Der Schlüssel Startdate scheint ein datetime zu enthalten. generasacodicetagpre.

Wenn ich jedoch versuche, eine binäre Serialisierung darauf auszuführen, bekomme ich eine Ausnahme, dass sich das Klagen, dass psobject ist nicht serialisierbar. generasacodicetagpre.

wirft: generasacodicetagpre.

Diese Nachricht geht weg und alles funktioniert, wenn ich einen expliziten Guss von [dateTime] wie so kann: generasacodicetagpre.

ist also ein Get-Datum, das nicht wirklich eine DateTime zurückgibt, oder ist hier einige andere Powershell-Seltsamkeit hier bei der Arbeit.

War es hilfreich?

Lösung

Jedes Objekt in PowerShell wird eigentlich meistens transparent in einem PSObject gewickelt.Ich sage meist transparent, weil es mehr als ein paar Fehler in PowerShell gibt, die auslassen, um den Wrapper zu entfernen, bevor Sie das Objekt an eine andere API auslaufen.Dies führt zu allen Arten von Problemen, ähnlich wie dem, den Sie jetzt sehen.Suchen Connect.Microsoft.com/Powershell für PSObject Wrapper.Ich glaube, das ist kein Problem mehr in V3 mit dem neuen DLR-basierten Motor.

Andere Tipps

Base auf dem MSDN:

PSOObject-Klasse: Einkapselt ein Basisobjekt des Typsobjekts oder des Typs pscustomobject, um eine konsistente Ansicht eines Objekts innerhalb der Windows PowerShell-Umgebung zu ermöglichen. generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top