header image

Logging non-contactable systems

Posted by: | October 31, 2011 | 1 Comment |

In this post – http://msmvps.com/blogs/richardsiddaway/archive/2011/10/23/1760058.aspx โ€“ I showed how to get the date of the last update applied to a system.  A comment was posted asking how to log machines that canโ€™t be contacted

".", "rslaptop01", "200.0.0.1" | foreach {              
    if (Test-Path -Path hotfix.log){Remove-Item -Path hotfix.log -Force}            
                
    if(-not(Test-Connection -ComputerName $_ -Count 1 -Quiet)){            
      Add-content -Path hotfix.log -Value "Could not contact $($_) at $(get-date)" -Encoding ASCII            
    }            
    else {            
      Get-HotFix -ComputerName $_  |              
      Where {$_.InstalledOn} |              
      sort InstalledOn -Descending |              
      select CSname, @{Name="Installed";              
      Expression={"{0:dd MMMM yyyy}" -f [datetime]$_.InstalledOn.Tostring()}} -First 1             
    }            
}

Simply add a couple of lines to run Test-Connection and if you donโ€™t get an answer then write out to a log file.

under: PowerShell and WMI

1 Comment

  1. By: Branko on November 5, 2011 at 9:05 pm      

    this code below working for me but im not good enough with PS to make logging working ๐Ÿ™‚
    i have a list with servers scan the for last update and export to csv. so if you could help me add this i would be very greatful ๐Ÿ™‚ tnx in advance.

    Branko

    $content = @();
    Get-Content “C:\servers.txt” |foreach {
    $content +=
    Get-HotFix -ComputerName $_ |
    Where {$_.InstalledOn} |
    sort InstalledOn -Descending |
    select CSname, @{Name=”Installed”;
    Expression={“{0:dd MMMM yyyy}” -f [datetime]$_.InstalledOn.Tostring()}} -First 1
    }
    $content | Export-Csv C:\update.csv