2017-05-04 7 views
1

HPOAサーバーブレードを取得するスクリプトを作成するためのヘルプが必要です。 問題は、クエリの正常性を取得すると、フィールド(IP、正常性、ブレード(@ {Blade1 。。。--- ----- -----
10.3 - ヘルス} {Blade2健康} {3})) は私が
IPベイパワー健康ExcelレポートPowerShellでの書式設定

以下のような報告をしたいです。 131.2 1オンOK
2オンOK
3オンOK
4オンOK
5劣化した場合

変数は次のようにして導かれます。

$ sstaInfo = {} | IP、ベイ、パワー、健康、DeviceFailure
$ sstaInfo.IP = $ ssta.IP(単一IP出力を提供します) $ sstaInfo.Bay = $ sstaBlades.Bay $ sstaInfo.Power = $ sstaBlades.Power $ sstaInfoを選択.Health = $ sstaBlades.Health

どうすればこの問題を解決できますか?

$ ssta変数の出力は次のとおりです。 @ {Power = On; CurrentWattageUsed = 480;健康= OK; UnitIdentificationLED =オフ。 VirtualFan = 33%; DiagnosticStatus =;ベイ= 1} @ {パワー=オン; CurrentWattageUsed = 576;健康= OK; UnitIdentificationLED =オフ。 VirtualFan = 47%; DiagnosticStatus =;ベイ私は置き換えられますライン

$report | Out-File "HPOA_Health_Report.txt" -Append 

以下のようあなたは、代わりにエクスポート-CSVを使用することをお勧め= 2}

#------------------------------------------------------------ Input Variable Definations 

$HPOAServers [email protected](
[pscustomobject]@{Name='10.11.12.13'}, 
[pscustomobject]@{Name='10.11.12.14'} 
) 

$Username ="admin" 
$Password ="admin" 

#------------------------------------------------------------ Main Script Starts Here 

# Function for connecting to OA and returning connection object on success 




foreach ($HPOAServer in $HPOAServers) { 

$con = Connect-HPOA $HPOAServer.Name -username $Username -password $Password 

$report = @() 

$ssta = Get-HPOAServerStatus -Bay All $con 

       $sstaBlade=$ssta.Blade 
       Write-Host $sstaBlade 
       Foreach ($sstaBlades in $sstaBlade) { 
        $i++ 

        $sstaInfo = {} | Select IP, Bay, Power, Health, DeviceFailure     
        $sstaInfo.IP=$ssta.IP 
        $sstaInfo.Bay=$sstaBlades.Bay 
        $sstaInfo.Power=$sstaBlades.Power 
        $sstaInfo.Health=$sstaBlades.Health 
$sstaInfo.DeviceFailure=$ssta.Blade.DiagnosticStatus.DeviceFailure 


       } 




$report += $ssta | Select-Object -Property IP 
$report += $ssta.Blade | Select-Object -Property Bay, Power, Health | Format-Table *       
$report | out-file "HPOA_Health_Report.txt" -Append   

} 
Disconnect-HPOA $con 

答えて

0
Function HPOA() { 
try 
{ 
     Remove-Item -Path $outputfile -Force 
     foreach ($HPOAServer in $HPOAServers) 
     { 
      $con = Connect-HPOA $HPOAServer.Name -username $Username -password $Password -ErrorAction 'Stop' 
      $ssta = Get-HPOAServerStatus -Bay All $con 

     $ssta.Blade | Foreach-Object { 
     $sstaInfo = $_ 

     $sstaInfo | Select-Object -Property @{Name="Chassis_IP_Address";Expression={$ssta.IP}}, 
      @{Name="Blade_Power_Status";Expression={$_.Power}}, 
      @{Name="Blade_Bay_Number";Expression={$_.Bay}}, 
      @{Name="Blade_Health_Status";Expression={$_.Health}}, 
      @{Name="Blade_Diagnostic_DeviceFailure_Status";Expression={$ssta.Blade.DiagnosticStatus.DeviceFailure}} 

     } | ConvertTo-Html -Title " $HPOARegionName HPOA Health Report " -Head $Header -Body "<H2> $HPOARegionName HPOA Health Report </H2>" -As Table | Out-File -Append $outputfile 
     Disconnect-HPOA $con 
    } 


} 

catch 
{ 
    $ErrorMessage = $_.Exception.Message 
    $FailedItem = $_.Exception.ItemName 
    Write-Host $ErrorMessage 
    Write-Host $FailedItem 

} 

} 

HPOA 
+0

上記の私のための魅力のように働いた:) –

1

:これは動作しません

$report | Export-Csv "HPOA_Health_Report.csv" -Append -NoTypeInformation 
+0

与えます空白の出力 –

関連する問題