Using Write-Output in foreach loop, I’m getting output in below format
Write-Output $a,$b,$c,$d | FT -Property Manu, State, Driver, DState, Model, MState, Firmware, Firmstate -Autosize
Output
Manu State Driver DState Model MState Firmware Firmstate
----- ------ ---------- ------- --------- ------ -------- -------
{Dell} {Passed}
10.56.XX.XX {Passed}
LPXXXXXx {Failed}
11.50.60.34 {Failed}
Manu State Driver DState Model MState Firmware Firmstate
----- ------ ---------- ------- --------- ------ -------- -------
{Dell} {Passed}
10.56.XX.XX {Passed}
LPXXXXXx {Failed}
11.50.60.34 {Failed}
Manu State Driver DState Model MState Firmware Firmstate
----- ------ ---------- ------- --------- ------ -------- -------
{Dell} {Passed}
10.56.XX.XX {Passed}
LPXXXXXx {Failed}
11.50.60.34 {Failed}
How can I format the object in single line as shown below.
Manu State Driver DState Model MState Firmware Firmstate
{Dell} {Passed} 10.56.XX.XX {Passed}LPXXXXXx {Failed}11.50.60.34 {Failed}
Thanks,
@($a,$b,$c,$d) | FT Manu, State, Driver, DState, Model, MState, Firmware, Firmstate -Auto
Thanks Sam. Still, I’m not getting output in correct format.
can you show what values in $a,$b,$c,$d ?
$WMI_XX = fetching system content using WMI query
$conf_XX = parsing xml config file entries.
foreach ($hba in $hbas) {
if ($WMI_Manufacturer -in $conf_Manufacturer) {
$props = @{ Manu =$WMI_Manufacturer
State = "Passed" }
$a = New-Object -TypeName PSObject -Property $props
}
else {
$props = @{ Manu =$WMI_Manufacturer
State = "failed" }
$a = New-Object -TypeName PSObject -Property $props
}
if ($WMI_Model -in $conf_Model) {
$props1 = @{ Model =$WMI_Model
State = "Passed" }
$b = New-Object -TypeName PSObject -Property $props
}
else {
$props1 = @{ Model =$WMI_Model
MState = "failed" }
$b = New-Object -TypeName PSObject -Property $props1
}
if ($WMI_Driver-in $conf_Driver) {
$props2 = @{ Driver =$WMI_Driver
DState = "Passed" }
$c = New-Object -TypeName PSObject -Property $props2
}
else {
$props = @{ Driver =$WMI_Driver
MState = "failed" }
$c = New-Object -TypeName PSObject -Property $props2
}
if ($WMI_Firm-in $conf_Firm) {
$props3 = @{ FirmVersion =$WMI_Firm
Firmstate = "Passed" }
$d = New-Object -TypeName PSObject -Property $props3
}
else {
$props3 = @{ FirmVersion =$WMI_Firm
Firmstate = "failed" }
$d = New-Object -TypeName PSObject -Property $props2
}
Write-Output $a,$b,$c,$d | FT -Property Manu, State, Driver, DState, Model, MState, Firmware, Firmstate -Autosize
}
what you want is what you get
you create several objects with two properties each.
but you need one object with many properties
$WMI_XX = fetching system content using WMI query
$conf_XX = parsing xml config file entries.
foreach ($hba in $hbas) {
$props = @{
Manu = $WMI_Manufacturer
Model = Model =$WMI_Model
Driver =$WMI_Driver
FirmVersion =$WMI_Firm
}
$props['State'] = if ($WMI_Manufacturer -in $conf_Manufacturer) { 'Passed' } else { 'Failed' }
$props['MSatte'] = if ($WMI_Model -in $conf_Model) { 'Passed' } else { 'Failed' }
$props['DState'] = if ($WMI_Driver-in $conf_Driver) { 'Passed' } else { 'Failed' }
$props['Firmstate'] = if ($WMI_Firm-in $conf_Firm) { 'Passed' } else { 'Failed' }
New-Object -TypeName PSObject -Property $props
} |
FT -Property Manu, State, Driver, DState, Model, MState, Firmware, Firmstate -Autosize
Thanks Max for your help.