入力反復を輸出しない内-メンバーを追加します。外のforeachループをCSVに
サーバー:[1,2,3]
サービス:[A、B、C]を
サーバー1 ""
サーバ2は、 "B" のサービス "A" を有するサービスを有する
サーバ3は、サービス "B"、 "C" を有する
予想出力は(コンソール上の正しい出力が得られた) 。
CSVでServer_Name ServerAvailability ServiceName[0] ServiceStatus[0] ServiceName[1] ServiceStatus[1] 1 Up a Running 2 Up a Running b Running 3 Up b Running c Running
実際の出力:
Server_Name ServerAvailability ServiceName[0] ServiceStatus[0] ServiceName[1] ServiceStatus[1] 1 Up a Running 2 Up a Running 3 Up b Running
foreach ($s in $servers) {
foreach ($srv in $services) {
$Asrv = Get-Service -Name $srv -ComputerName $s
if ($Asrv -ne $null) {
$HashSrvs.Add($Asrv.Name, $Asrv.Status)
}
}
$infoObject = @()
$infoObject = New-Object PSObject
$infoObject | Add-Member -MemberType NoteProperty -Name "Server name" -Value $s
$infoObject | Add-Member -MemberType NoteProperty -Name "ServerAvailability" -Value $ConStatus
$i=0
foreach ($key in $HashSrvs.GetEnumerator()) {
$infoObject | Add-Member -MemberType NoteProperty -Name "ServiceName[$i]" -Value $key.Key -Force
$infoObject | Add-Member -MemberType NoteProperty -Name "ServiceStatus[$i]" -Value $key.Value -Force
$i++
}
$infoColl += $infoObject
}
$infoColl | Export-Csv -NoTypeInformation -Path .\Server_Inventory_$((Get-Date).ToString('MM-dd-yyyy')).csv -Encoding UTF8
出力が正しいです。エラーは表示されません。このエラーはCSVファイルで発生します。強調表示されたforeach
ループは反復されません。それはService Name[0]
とService Status[0]
で停止します。これで私を助けてください。
編集ご質問)あなたの間違った例2)あなたが期待している出力の例。 –