I need some help in fixing the below PowerShell script to collect the MS Word version in the few select PC in certain OU:
Code: Select all
Get-ADComputer -Filter {Enabled -eq $True} -SearchBase "OU=Laptop Users,DC=MyDomain,DC=com" |
Where-Object {Test-Connection $_.Name -Count 1 -Quiet} | ForEach-Object {
Write-Host "Processing $($_) ..."
$result = '' | Select-Object -Property ComputerName, OfficeVersion, Error
$result.ComputerName = $_
$output = & reg.exe query "\\$($_)\HKLM\Software\Classes\Word.Application\CurVer" /ve 2>&1
If ($version = $output | Where-Object {$_ -match '.*?REG_SZ\s+Word\.Application\.(?<Version>\d+)'}) {
$result.OfficeVersion = $Matches['Version']
$officever = $version.'(default)'
$result.OfficeVersion = switch ($officever){
"Word.Application.17" {"Office 2019"}
"Word.Application.16" {"Office 2016"}
"Word.Application.15" {"Office 2013"}
"Word.Application.14" {"Office 2010"}
"Word.Application.12" {"Office 2007"}
"Word.Application.11" {"Office 2003"}
} Else {
$result.Error = ($output | Out-String).Split("`r`n")[0]
}
$result
}
} | Export-Csv -NoTypeInformation -Path C:\Result.csv
Code: Select all
Get-ADComputer -Filter {Enabled -eq $True} -SearchBase "OU=Laptop Users,DC=MyDomain,DC=com" | Where-Object {Test-Connection $_.Name -Count 1 -Quiet}