2017-07-07 6 views
0

は、私が呼ばれる配列またはPSCustomObjectをしている既存のに配列を追加$allResults = @{}PowerShellは、ネストされたハッシュテーブル

$results |ftを、コンソールでこれを示しています

Brokering  Name    WriteCacheSize dFreeSpace (and more...) 
---------  ----    -------------- ----------    
N/A    server0001  0,004   22,83    
N/A    server0002  0,004   21,86   

$allresults |ftはこれを示します。

Name      Value             
----      ---- 
server0001      {SCOMStatus, PVSServer, RegistrationState, ServerLoad...} 
server0001      {SCOMStatus, PVSServer, RegistrationState, ServerLoad...}      

名前は両方とも$で共通しています。 $resultsの値を$allresultsに追加する方法があるはずですが、その方法はわかりません。

ハッシュのネストした表のすべてが必要です。 $resultsの値を$allresultsに追加するにはどうすればよいですか。目標は、すべての値を含むネストした表を持つことです。

+0

あなたは '$ allResults'ハッシュテーブルは、カスタムオブジェクトである値が含まれている意味しますか? –

+0

私はそれをテストするために実際のオブジェクトにアクセスできませんが、試してみてください:['$ results、$ allresults |ユニオン| ft'](https://stackoverflow.com/questions/44428189/not-all-properties-displayed/44429084#44429084) – iRon

+0

か試してください:[$結果、$ allresults |マージハッシュテーブル| FT](https://stackoverflow.com/questions/8800375/merging-hashtables-in-powershell-how/32890418#32890418) – iRon

答えて

0

ハッシュテーブルに配列の値を追加する場合は、配列をループして$allresults.Add(<key>,<value>)を使用します。

0

お返事ありがとうございます。 私はついにそれを達成しました。カスタムプロパティを持つ別のオブジェクトを作成した後、ハッシュテーブルをフルフィルしました。 これはコードです:

$myObjectProperties = @(
"Brokering" 
"PVSServer" 
"Name" 
"VDA" 
"WMI" 
"vDisk" 
"dFreeSpace" 
"WriteCacheSize" 
"Spooler" 
"CitrixPrint" 
"Uptime" 
"cFreeSpace" 
"RunspaceId" 
) 
foreach ($element in $results){ 
    foreach ($property in $myObjectProperties){ 
     $allresults.$($element.Name).$property = $element.$property 
    } 
} 
関連する問題