O powershell com certeza pode fazer isso por você. Confira o seguinte: Exemplos do PoshCode PowerShell
A maneira oficial de detectar as versões do .NET é examinar sua localização conhecida no disco rígido, de acordo com este artigo: link
Modificar o script para suportar o .NET 4 seria bastante fácil. Basta adicionar esta linha:
V4Present = &{ if ( $res | Where-Object { $_.Major -eq 4 -and $_.Minor -eq 0 } ) { $true } }