How to get name and in a sequence in Powershell -
when run below code error model number in heading not being displayed , 1 more thing unable 3 of them in sequence.
$arrcomputers = get-content -path "c:\desktop\computers.txt" $e=$arrcomputers | foreach-object {get-wmiobject -class win32_bios -computername $_ } |select pscomputername, version,manufacturer,status,biosversion,serialnumber |convertto-html -fragment $e2=$arrcomputers |foreach-object { get-wmiobject -class win32_logicaldisk -filter "deviceid = 'c:'" -computername $_ } | select freespace,size | convertto-html -fragment $e3=$arrcomputers |foreach-object { get-wmiobject -class "win32_computersystem" -computername $_ } | select model| convertto-html -fragment convertto-html -body "$e $e2 $e3" -title "list of computers" | out-file c:\users\desktop\gf.html
its lot easier make of wmi calls single object. easier handle formatting. think got wanting:
function getcompinfowork { param ( [string]$computername,[string]$logfile ) $pc = get-wmiobject win32_computersystem -computername $computername $bios = get-wmiobject win32_bios -computername $computername $disk = get-wmiobject win32_logicaldisk -filter "deviceid= 'c:'" ` -computername $computername $obj = new-object -typename psobject $obj | add-member -membertype noteproperty ` -name pscompname -value ($bios.pscomputername) $obj | add-member -membertype noteproperty ` -name version -value ($bios.version) $obj | add-member -membertype noteproperty ` -name manufacturer -value ($bios.manufacturer) $obj | add-member -membertype noteproperty ` -name status -value ($bois.status) $obj | add-member -membertype noteproperty ` -name serialnumber -value ($bios.serialnumber) $obj | add-member -membertype noteproperty ` -name disksize -value ($disk.size / 1gb -as [int]) $obj | add-member -membertype noteproperty ` -name sysdrivefree -value ($disk.freespace / 1gb -as [int]) $obj | add-member -membertype noteproperty ` -name computername -value ($pc.model) write-output $obj } function get-compinfo { param ([string[]]$computername,[string]$logfile ) begin { $usedparamater = $false if ($psboundparameters.containskey('computername')) { $usedparamater = $true } } process { if ($usedparamater) { foreach ($computer in $computername) { getcompinfowork -computername $computer ` -logfile $logfile } } else { getcompinfowork -computername $_ ` -logfile $logfile } } end {} } get-content c:\users\kev\desktop\computers.txt| get-compinfo | convertto-html | out-file c:\users\kev\desktop\output.html
Comments
Post a Comment