如何将以下输出转换为对象?

时间:2018-01-19 21:41:59

标签: powershell

Name                           Value                                                                         
----                           -----                                                                         
Server                         aaa1111                                                  
Printer                        bbb1111                                                         
Driver                         ccc1111                                                 
Port                           ddd1111                                               
Share                          eee1111
Server                         aaa2224                                                  
Printer                        bxb1111                                                         
Driver                         cccfff1                                                 
Port                           ddd1ggg                                               
Share                          
Server                         aaa2224                                                  
Printer                        bxb1111                                                         
Driver                                                                          
Port                           ddd1ggg                                               
Share                          shhhhhh



Name                           Value                                                                         
----                           -----                                                                         
Server                         aaa1111                                                  
Printer                        bbb1111                                                         
Driver                         ccc1111                                                 
Port                           ddd1111                                               
Share                          eee1111
Server                         aaa2224                                                  
Printer                        bxb1111                                                         
Driver                         cccfff1                                                 
Port                           ddd1ggg                                               
Share                          
Server                         aaa2224                                                  
Printer                        bxb1111                                                         
Driver                                                                          
Port                           ddd1ggg                                               
Share                          shhhhhh

我想将上述输出格式转换为自定义对象,以便我可以执行以下命令。(对于分享驱动程序,某些条目为空哪个空字符串应该在那里)

$object | Select-Object Server,Printer,Driver,Port,Share 

输出来自内部的后台作业,如

foreach ( $key in $hash.key ) {
backgroundjob
}

每个后台作业都有名称和值列的输出,我希望所有内容都在一个对象中。

1 个答案:

答案 0 :(得分:2)

您返回hashtable,但想要PSCustomObject

找到你的哈希表

@{
    Server = 'aaa1111'
    Printer = 'bbb111'
    Port = 'ccc111'
}

并将其类型转换为PSCustomObject,就像这样

[PSCustomObject]@{
    Server = 'aaa1111'
    Printer = 'bbb111'
    Port = 'ccc111'
}

您的脚本难以阅读,但我认为您必须将第65行更改为

[PSCustomObject]$arg5