$names = 'rc.exe','cvtres.exe','link.exe'
$roots = @(
'C:\Program Files (x86)\Windows Kits',
'C:\Program Files\Windows Kits',
'C:\Program Files (x86)\Microsoft Visual Studio',
'C:\Program Files\Microsoft Visual Studio'
)
foreach ($n in $names) {
Write-Host "==== Searching for $n ===="
$foundAny = $false
foreach ($r in $roots) {
if (-not (Test-Path $r)) { continue }
Write-Host "Scanning: $r"
try {
$hits = Get-ChildItem -Path $r -Filter $n -Recurse -ErrorAction SilentlyContinue -Force -File | Select-Object -First 5
} catch {
$hits = @()
}
foreach ($h in $hits) {
$foundAny = $true
Write-Host $h.FullName
$v = (Get-Item $h.FullName).VersionInfo
Write-Host " FileVersion: $($v.FileVersion)"
Write-Host " ProductVersion: $($v.ProductVersion)"
Write-Host " CompanyName: $($v.CompanyName)"
}
}
if (-not $foundAny) { Write-Host "No matches under standard roots." }
}