Сценарий, как он делает, запрашивает ваш локальный компьютер:
$Objs = @()
$RegKey = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
$InstalledAppsInfos = Get-ItemProperty -Path $RegKey
Get-ItemProperty -Path $ RegKey относится к локальному компьютеру.
Имя Computername, которое вы передаете в качестве параметра при вызове этой функции, используется только для создания отчета, который всегда ссылается на ваш локальный компьютер
Вам необходимо реализовать команду invoke и управлять результатами, или используйте готовый скрипт, такой как этот
Вот пример реализации
$outputfile = "$env:userprofile\Servers_$(get-date -f yyyy-MM-dd).log"
$computers = @('host1','host2','host3','host4')
# or
# $computers = get-content HostsListOneperLine.txt
$computers | % {
write-output "processing $_" # remove if not needed
if ( test-connection -computername $_ -count 1 -quiet ) {
Invoke-Command -ComputerName $_ -ScriptBlock {
Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
}
}
} | Out-File "$outputfile" -Append