$comp= gc "provide the path of the server list" $patch = gc "provide the path of the KB's" $infoObject=@() $results=@() foreach($co in $comp) { $co $css = @" "@ $infoObject = New-Object PSObject $p=Test-Connection -ComputerName $co -BufferSize 16 -Count 1 -Quiet $p if ($p -eq $true) { $os = (Get-WMIObject win32_operatingsystem -ComputerName $co ).caption $os $hotfix=Get-hotfix -ComputerName $co|Where { $patch -contains $_.HotFixID } $v=($hotfix | select @{Name="Installedpatch" ;expression={$hotfix.hotfixID -join ","}} -Last 1).Installedpatch $v #$description = Get-WmiObject -Class Win32_quickfixengineering -ComputerName $co|select -ExpandProperty Description -last 1 $Boottime= Get-WmiObject win32_operatingsystem -computername $co $b=($boottime| select @{LABEL="LastBootUpTime" ;EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}).Lastbootuptime $b $service=Get-WmiObject -ClassName Win32_Service -Filter "StartMode='Auto' AND State<>'Running'" -computername $co $r=($service|select @{Name="Service" ;expression={$service.name -join ","}} -Last 1).service $r $infoObject|Add-Member -MemberType NoteProperty -Name "Hostname" -value $co $infoObject|Add-Member -MemberType NoteProperty -Name "Reachable" -value $p $infoObject|Add-Member -MemberType NoteProperty -Name "Uptime" -value $b $infoObject|Add-Member -MemberType NoteProperty -Name "Operating System" -value $os $infoObject|Add-Member -MemberType NoteProperty -Name "Installed Patches" -Value $v $infoObject|Add-Member -MemberType NoteProperty -Name "Auto Stopped services" -Value $r $results+=$infoObject } else { $infoObject|Add-Member -MemberType NoteProperty -Name "Hostname" -value $co $infoObject|Add-Member -MemberType NoteProperty -Name "Reachable" -value $p #$infoObject|Add-Member -MemberType NoteProperty -Name "Uptime" -value $b #$infoObject|Add-Member -MemberType NoteProperty -Name "Operating System" -value $os #$infoObject|Add-Member -MemberType NoteProperty -Name "Installed Patches" -Value $v #$infoObject|Add-Member -MemberType NoteProperty -Name "Auto Stopped services" -Value $r $results+=$infoObject } } $results|Export-csv "C:\Users\admin\Desktop\result.csv" -NoTypeInformation Import-CSV "C:\Users\admin\Desktop\result.csv" | ConvertTo-Html -Head $css | Out-File "C:\Users\admin\Desktop\postreportpatch.html"