実際にインストールされているかどうかを知りたいとおっしゃっていたので、(バージョン固有のコードを実行する以外に)最善の方法は、安心できる名前の「Install」レジストリキーを確認することだと思います。0x1 ははいを意味します。
C:\>reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5"| findstr Install
Install REG_DWORD 0x1
InstallPath REG_SZ c:\WINNT\Microsoft.NET\Framework\v3.5\
これはたまたま「マイクロソフト推奨」公式の方法でもあります。
WMI も別の可能性ですが、実用的ではないようです (遅いですか?私の C2D、SSD では 2 分かかります)。多分それはあなたのサーバーでよりうまく機能します:
C:\>wmic product where "Name like 'Microsoft .Net%'" get Name, Version
Name Version
Microsoft .NET Compact Framework 1.0 SP3 Developer 1.0.4292
Microsoft .NET Framework 3.0 Service Pack 2 3.2.30729
Microsoft .NET Framework 3.5 SP1 3.5.30729
Microsoft .NET Compact Framework 2.0 2.0.5238
Microsoft .NET Framework 4 Client Profile 4.0.30319
Microsoft .NET Framework 4 Multi-Targeting Pack 4.0.30319
Microsoft .NET Framework 2.0 Service Pack 2 2.2.30729
Microsoft .NET Framework 1.1 1.1.4322
Microsoft .NET Framework 4 Extended 4.0.30319
C:\>wmic product where "name like 'Microsoft .N%' and version='3.5.30729'" get name
Name
Microsoft .NET Framework 3.5 SP1
これら以外では、100% 確実にする唯一の方法は、フレームワーク バージョンを対象としてコンパイルされた単純なコンソール アプリを実際に実行することだと思います。個人的には、これは不要であると考えており、レジストリ メソッドを信頼しています。
最後に、サーバーから到達可能なイントラネット テスト サイトをセットアップし、ユーザー エージェントをスニッフィングして .NET のバージョンを判断することができます。もちろん、これはバッチ ファイル ソリューションではありません。こちらのドキュメントも参照してください。