# $My_List = Import-Csv "\\ccx\shares\Users\Serverless\NNAZMAT\temp\Legacy-Servers.csv"
$Report = @()
$T = @()
$Failed_Connection = @()
$Failed_Invoke = @()
$My_List | % { $Temp = $_

    If(Test-Connection $Temp.Machine -Count 1 -ErrorAction SilentlyContinue) {

        If(Invoke-Command $Temp.Machine -ErrorAction SilentlyContinue { $env:COMPUTERNAME }) {

                    $T2 = Invoke-Command $Temp.Machine { Get-ItemProperty "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" | 
                    ? { $_.DisplayName -notlike "Security*" -and $_.DisplayName -notlike "Update*" -and $_.DisplayName -notlike "Hotfix*" -and $_.DisplayName -notlike "Microsoft Visual C++*" -and $_.DisplayName -notlike ""}  |
                    Select-Object displayname, displayversion, publisher, installdate } 
     
                    $T2 | % {
                    $Obj = New-Object -TypeName PSObject
                    $Obj | Add-Member -MemberType NoteProperty -Name Machine -Value $Temp.Machine
                    $Obj | Add-Member -MemberType NoteProperty -Name OS -Value $Temp.OS
                    $Obj | Add-Member -MemberType NoteProperty -Name DisplayName -Value $_.DisplayName
                    $Obj | Add-Member -MemberType NoteProperty -Name DisplayVersion -Value $_.DisplayVersion
                    $Obj | Add-Member -MemberType NoteProperty -Name Publisher -Value $_.Publisher
                    $Obj | Add-Member -MemberType NoteProperty -Name InstallDate -Value $_.InstallDate
                    $Obj
                    $Report += $Obj
        
        
        
                }#$end%
        }#endIfinvoke
        Else { $Failed_Invoke += $Temp.Machine  }
    }#endIf

    Else { $Failed_Connection +=  $Temp.Machine }           
    
    }#end%
    


