#------------------------------------------------------------------ # Produces report for .NET Version on a set of remote computers or # localhost # # Usage: # local machine # $env:computername | .\Get-FrameWork.NETVersion.ps1 # set of remote computers #get-content | .\Get-FrameWork.NETVersion.ps1 # # Optionally pipe output to Export-Csv, ConverTo-Html #------------------------------------------------------------------ Process { $Output = "" | Select ServerName , Application, Version, ServicePack $Srv = $_ $Output.ServerName = $Srv $key = "SOFTWARE\Microsoft\NET Framework Setup\NDP" $type = [Microsoft.Win32.RegistryHive]::LocalMachine $regKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($type, $Srv) $regKey2 = $regKey.OpenSubKey($key) Foreach($sub in $regKey2.GetSubKeyNames() ){ #$sub = .NET Version # subkey Path $subkey = "$key\$sub" $regKey3 = $regKey.OpenSubKey($subkey) Foreach($subkey in $regKey3.GetValueNames()){ # $subkey = key in key\sub if ($subkey -eq "SP") { $Output.Application = "Framework" $Output.Version = $sub.substring(0,4) $Output.ServicePack = $regKey3.GetValue("$subkey") #Write-Host "Framework "$sub.substring(0,4) $subkey $regKey3.GetValue("$subkey") } } $output } }