Algo parecido com isso lhe dará um ponto de partida:
#Get computers from text file. 1 compute per line
$myComputerList = Get-Content C:\Installs\computerList.txt
#Loop Through Array
ForEach ($computer in $myComputerList) {
#Execute a command on the computer
Invoke-Command -ComputerName $computer -ScriptBlock {
#This is the command to execute
#Grab the registry value you want and hold it in a variable
$value = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" -Name ProductName
#grab the machine name you're working on
$computerName = $env:COMPUTERNAME
#comma separate them and spit them out to a file. This can be a UNC path on a network share
($computerName + "," + $value) | Out-File -FilePath C:\Installs\Output.csv -Append
}
}
Existem todos os tipos de adições que você pode fazer, como manipular vários valores do Registro, testar se a máquina está ou não ligada antes de se conectar, lidar com erros de acesso e máquinas não contatáveis etc. - mas isso não é um serviço de criação de scripts. Eu acabei de te dar um breve ponto de partida