如何从PowerShell Remoting返回DataTable?

时间:2012-09-14 09:39:43

标签: sql powershell datatable remoting

我有一个普通的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的类型,它有一个关于反序列化的前缀,所以我无法通过调用之前的属性/方法来获取每个单元格的值。

我该怎么做?

将其转换为数组/哈希表?

谢谢!

1 个答案:

答案 0 :(得分:0)

这就是远程处理的工作原理 - 你总是会得到一个反序列化的对象。解决此问题的一种方法是将所有工作推送到远程,并仅返回您感兴趣的属性。

另一种选择,我编写了一个out-datatable函数,它将任何对象转换为数据表:

http://poshcode.org/3534