{
param(
[string]$ComputerName = $env:COMPUTERNAME
)
foreach($computer in $ComputerName)
{
if($regKey =
[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $computer))
{
if ($netRegKey = $regKey.OpenSubKey("$dotNetRegistry"))
{
foreach ($versionKeyName in $netRegKey.GetSubKeyNames())
{
if ($versionKeyName -match '^v[123]') {
$versionKey = $netRegKey.OpenSubKey($versionKeyName)
$version = [System.Version]($versionKey.GetValue('Version',
''))
New-Object -TypeName PSObject -Property ([ordered]@{
ComputerName = $computer
Build = $version.Build
Version = $version
Comment = ''
})
}
}
}
if ($net4RegKey = $regKey.OpenSubKey("$dotNet4Registry"))
{
if(-not ($net4Release = $net4RegKey.GetValue('Release')))
{
$net4Release = 30319
}
New-Object -TypeName PSObject -Property ([ordered]@{
ComputerName = $Computer
Build = $net4Release
Version = $dotNet4Builds["$net4Release"].Version
Comment = $dotNet4Builds["$net4Release"].Comment
})
}
}
}
}