0

通常の PS 関数では、System.Data.SqlClient.SqlConnection、System.Data.SqlClient.SqlCommand、System.Data.SqlClient.SqlDataAdapter を使用して db をクエリし、System.Data.DataTable オブジェクトを返します。

これまでのところうまく機能しており、いくつかの目的のためにリモート化したいと考えています。

「Invoke-Command -ComputerName xxx -ScriptBlock {}」ブロックに入れると、db レコードが正常に取得されることがわかりました。

しかし、戻り値は System.Data.DataTable の型ではなく、deserialized に関するプレフィックスが付いているため、以前のようにプロパティ/メソッドを呼び出して各セルの値を取得することはできません。

どうやってやるの?

配列/ハッシュテーブルに変換しますか?

ありがとうございました!

4

1 に答える 1

0

これがリモーティングの仕組みです。常にデシリアライズされたオブジェクトを取得します。これを回避する 1 つの方法は、すべての作業をリモートにプッシュし、関心のあるプロパティのみを返すことです。

別のオプションとして、任意のオブジェクトをデータテーブルに変換する out-datatable 関数を作成しました。

http://poshcode.org/3534

于 2012-09-14T14:34:50.310 に答える