インストールされている .NET Framework のバージョンをチェックするスクリプト - .NET Framework 4.0 対応版
インストールされている .NET Framework のバージョンをチェックするスクリプト を .NET Framework 4.0 に対応してみました。
4.0 は Full と Client Profile の 2 種類があるんですねー。
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?> <package> <job id="Registry"> <?job error="True" debug="True" ?> <script language="JScript"> <![CDATA[ var checker = function () { var _reader = function () { var _shell = new ActiveXObject ("WScript.Shell"); return { read: function (name) { try { return _shell.RegRead (name); } catch (e) {}; return null; } }; } (); var _checkKey = function (key) { var install = _reader.read (key + "\\Install"); if (install == null || "" + install == "0") return null; var servicePack = _reader.read (key + "\\SP"); if (servicePack == null) servicePack = 0; return servicePack; }; var _check10 = function () { var install = _reader.read ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\Full\\v1.0.3705\\1041\\Microsoft .NET Framework Full v1.0.3705 (1041)\\Install"); if (install == null || "" + install == "0") return null; var version = _reader.read ("HKLM\\SOFTWARE\\Microsoft\\Active Setup\\Installed Components\\{78705f0d-e8db-4b2d-8193-982bdda15ecd}\\Version"); if (version == null) version = _reader.read ("HKLM\\SOFTWARE\\Microsoft\\Active Setup\\Installed Components\\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24}\\Version"); if (version == null) return 0; var m = version.match (/^1,0,3705,(\d+)$/); var servicePack = 0; if (m != null && m.length > 1) servicePack = m [1] - 0; return servicePack; }; var _formatResult = function (check, label) { switch (check) { case null: return label + ": not installed.\n"; case 0: return label + ": installed.\n"; default: return label + ": SP" + check + " installed.\n"; } }; return { check10: _check10, check11: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v1.1.4322"); }, check20: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727"); }, check30: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.0"); }, check35: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.5"); }, check40Client: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Client"); }, check40Full: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full"); }, check11JP: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v1.1.4322\\1041"); }, check20JP: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727\\1041"); }, check30JP: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.0\\1041"); }, check35JP: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.5\\1041"); }, check40ClientJP: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Client\\1041"); }, check40FullJP: function () { return _checkKey ("HKLM\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full\\1041"); }, show: function () { WScript.echo (_formatResult (this.check10 (), ".NET Framework 1.0") + _formatResult (this.check11 (), ".NET Framework 1.1") + _formatResult (this.check11JP (), " Japanese Langage Pack") + _formatResult (this.check20 (), ".NET Framework 2.0") + _formatResult (this.check20JP (), " Japanese Langage Pack") + _formatResult (this.check30 (), ".NET Framework 3.0") + _formatResult (this.check30JP (), " Japanese Langage Pack") + _formatResult (this.check35 (), ".NET Framework 3.5") + _formatResult (this.check35JP (), " Japanese Langage Pack") + _formatResult (this.check40Client (), ".NET Framework 4.0 Client Profile") + _formatResult (this.check40ClientJP (), " Japanese Langage Pack") + _formatResult (this.check40Full (), ".NET Framework 4.0 Full") + _formatResult (this.check40FullJP (), " Japanese Langage Pack") ); } }; } (); checker.show (); ]]> </script> </job> </package>