Você verifica qual versão do Windows Management Framework (WMF) está instalada, identificando o número KB da versão que está verificando e, em seguida, usando, neste caso, uma consulta wmic, para determinar se esse número KB foi instalado.
Esses exemplos são baseados no uso do cmd.exe para executar os comandos.
** Comandos para verificar o WMF 4.0
wmic qfe get hotfixid | find "KB2819745"
echo %ERRORLEVEL%
** Exemplo de execução dos comandos:
C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB2819745"
KB2819745
C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
0
No exemplo acima, o WMF 4.0 está instalado: O KB é retornado da consulta wmic e um código de retorno zero.
** Comandos para verificar o WMF 5.0
wmic qfe get hotfixid | find "KB3134760"
echo %ERRORLEVEL%
** Exemplo de execução dos comandos:
C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB3134760"
C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
1
Portanto, no exemplo acima, o WMF 5.0 não está instalado: nada retornou da consulta wmic e um código de retorno diferente de zero.
É possível que você tenha usado um KB diferente para instalar um determinado nível de WMF, mas é com isso que estou trabalhando atualmente.
E eu sempre verifico o PowerShell (que é instalado ou atualizado como parte do WMF):
powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -Command "Write-Host $PSVersionTable.PSVersion"
echo %ERRORLEVEL%
Há problemas ao atualizar para o WMF 4.0 (e novamente para 5.0) se o .NET 4.5 não estiver instalado, portanto, se o comando PS gerar um erro, provavelmente você deve instalar o .NET 4.5.