リモートホストからCSV文字列の形で情報を収集しようとしています。 1つのCSVファイルにそれらを累積するために返される値が特に必要です。スクリプトブロックに注文されたハッシュテーブルを渡すと、注文が破損する
キーを特定の順序に保つために順序付きハッシュテーブルを使用しますが、リモートホストに渡すと順序が壊れます。
注文を保存する方法はありますか?
$ordered_hash = [ordered]@{"a" = 1; "b" = 2; "c" = 3}
$ordered_hash
$scriptblock = {
param ($hash)
$hash
}
Invoke-Command -ComputerName localhost -ScriptBlock $scriptblock -ArgumentList ([hashtable]$ordered_hash)
戻り値:
Name Value
---- -----
a 1
b 2
c 3
c 3
b 2
a 1
可能な回避策:https://stackoverflow.com/q/14891044/56778 –
'-ArgumentList([ハッシュテーブル] $のordered_hash)' - > '-ArgumentList $ ordered_hash'? –
PowerShellのシリアライゼーションシステムには、次のような問題があります。 '$ s = [System.Management.Automation.PSSerializer]; $ o = [順序付け] @ {}; $ o.GetType()。FullName; $ s :: Deserialize($ s :: Serialize($ o))。GetType()。FullName' – PetSerAl