2017-06-12 14 views
2

多くのサーバーの保証を確認する必要がありますが、https://www.powershellgallery.com/packages/HPWarranty/2.6.2にあるモジュールから返された出力はハッシュテーブルと思われ、最初の列には自分の行になりたいものが含まれています。PowerShell - ハッシュテーブルの結果を転記する

以下のスクリプトは、フィールドが繰り返さ場所ごとに5行これを返します - output1.csv:

TYPE System.Management.Automation.PSCustomObject

"コンポーネント"、 "Codecount"
"のSerialNumber"、 "CZ36092P5H"
"ProductNumber"、 "727021-B21"
"OverallEntitlementStartDate"、 "2016年3月4日"
"OverallEntitlementEndDate"、 "2019年4月2日"
"ActiveEntitlement"、 "真"
"のSerialNumber"、 "CZ36092P5K"
"ProductNumber"、 "727021-B21"
"OverallEntitlementStartDate"、 "2016年3月4日"
"OverallEntitlementEndDate"、 "2019 -04-02"
"ActiveEntitlement"、 "真" のSerialNumber、ProductNumber、OverallEntitlementStartDate、OverallEntitlementEndDateとActiveEntitlementは列があるように


がどのように出力を転置することができますか?

ProductNumber、のSerialNumber
727021-B21、CZ36092P5H
727021-B21、CZ36092P5K

+0

パイプラインで[Select-Object](https://technet.microsoft.com/en-us/library/ee176955.aspx)の列を使用してください – t0mm13b

答えて

2
:スクリプトのプロセスは二つのサーバの詳細が含まれてい

# variables 
$dest_path = "C:\Scripts\HPE\HPWarranty" 
$export_date = Get-Date -Format o | ForEach-Object {$_ -replace ":", "-"} 
$myScriptName = $MyInvocation.MyCommand.Name 
$transcriptPath = $dest_path + "\" + $myScriptName + "_transcript_" + $export_date + ".txt" 
$csvPath = $dest_path + "\" + "hpe_list1.csv" 

#Start transcript of script activities and set transcript location 
start-transcript -append -path $transcriptPath | Out-Null 

# import serials & part numbers to be processed 
$csv_info = Import-Csv $csvPath 

foreach ($line in $csv_info) { 
    $hash = (Get-HPEntWarrantyEntitlement -ProductNumber $line.ProductNumber -SerialNumber $line.SerialNumber) 
    &{$hash.getenumerator() | 
     ForEach-Object {new-object psobject -Property @{Component = $_.name;Codecount=$_.value}} 
    } | Export-Csv "C:\Scripts\HPE\HPWarranty\output1.csv" -Append 
} 

# Stop Transcript 
Stop-Transcript | Out-Null 

hpe_list1.csv

出力ハッシュテーブルを[pscustomobject]にキャストします。

$WarrantyInfo = foreach ($line in $csv_info) { 
    [pscustomobject](Get-HPEntWarrantyEntitlement -ProductNumber $line.ProductNumber -SerialNumber $line.SerialNumber) 
} 
$WarrantyInfo | Export-Csv "C:\Scripts\HPE\HPWarranty\output1.csv" 
+0

BenHさん、私が必要としていたことをありがとう! – George

関連する問題