Friday, April 29, 2016

PS script to find a specific file.

#Read the list of computers
$Servers = Get-Content "$ServerList"

#init some objects
$LineItems = @()
$LineItem = $null

#for loop to call Get-CimFile
foreach($Server in $Servers){
    try{
       $Results = Get-CimFile -Name $FileName -ComputerName $Server -Credential $Credential 
       Foreach($Result in $Results){
               $Properties = @{ 'ComputerName'=$Server;
                                'FileInstance'=$Result.Name;
                                'FileVersion'=$Result.Version;
                               }
               $LineItem = new-object -TypeName PSObject -Property $Properties
               $LineItems+=$LineItem
       }  
    }
    Catch{
       Write-host "  FindAllFileInstances Error: Could not connect to $Server. Check your credentials and Remote Computer availability." -f Red
    }
}


#Write Output to CSV
Foreach($LineItem in $LineItems){
        Foreach($item in $LineItem){
            $Item | Export-Csv $OutputFile -NoTypeInformation -Append
        }
}
Write-Host "$OutputFile created."
________________________________________