WSH(VBS) 「Windows Installer」「.NET Framework」 を調べるスクリプト


以下の条件を調べるスクリプトを教えて下さいませんか?


・「Windows Installer」のインストール有無を確認したい。
・「Windows Installer」のバージョンを確認したい。
・「.NET Framework」のインストール有無を確認したい。
・「.NET Framework」のバージョンを確認したい。


※「レジストリのここを見て判断すればいいんだよ!」という回答でも良いです。(自分でコーディングします)
  2つセットでの回答を期待しています。


※あと、VBの得意な方はこちらの回答もお願いできますか。
http://q.hatena.ne.jp/1169471461
http://q.hatena.ne.jp/1169685758
http://q.hatena.ne.jp/1169688676

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2007/01/27 13:13:29
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tokuya_n No.1

回答回数56ベストアンサー獲得回数7

ポイント80pt

.NetFrameworkはたぶんこんな感じで探せるような気がする。

もっと良い方法とかあるかな。

あんまりテストもしてないので、そこはご勘弁。

On Error Resume Next

Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."

Set objRegistry=GetObject("winmgmts:\\" & _

strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\.NETCompactFramework"

objRegistry.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubkeys

For Each objSubkey In arrSubkeys

If Left(objSubkey,4) = "v1.0" Then

WScript.Echo ".Framework v1.0がインストール済"

End If

If Left(objSubkey,4) = "v2.0" Then

WScript.Echo ".Framework v2.0がインストール済"

End If

Next


Installerはどうでしょうね...

WindowsXPは標準が2.0だから、

KB893803が当たってるかどうかで2.0なのか3.1なのかは分かるといえるのかな?

やっつけ仕事で

Set Shell = WScript.CreateObject("WScript.Shell")

RegKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix\KB893803v2\Fix Description"

Installer = ""

On Error Resume Next

Installer = Shell.RegRead(RegKey)

On Error GoTo 0

if Installer="" then

WScript.Echo "「Windows Installer 3.1」が見つからない"

else

WScript.Echo "「Windows Installer 3.1」が見つかった"

end if

とかじゃ駄目でしょうか。

id:wwworz

WMIというのを初めてしりました。

とても勉強になりました。

Frameworkの確認は良さそうですね。

Installerの確認は、

SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

のところのサブキーを全てなめて、DisplayNameを1つ1つチェックすることで対応してみました。

ありがとうございました。

2007/01/27 13:10:26
  • id:kumonoyouni
    直接的な回答ではありませんのでコメントで失礼します。
    以下、関連サイトを探してみました。

    >>
    ・「Windows Installer」のインストール有無を確認したい。
    ・「Windows Installer」のバージョンを確認したい。
    <<
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22927&forum=7
    http://www.atmarkit.co.jp/fwin2k/win2ktips/699winicu/winicu.html
    http://support.microsoft.com/kb/268800/ja
    http://msdn2.microsoft.com/en-us/library/aa370840.aspx


    >>
    ・「.NET Framework」のインストール有無を確認したい。
    ・「.NET Framework」のバージョンを確認したい。
    <<
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=33270&forum=7


    ご参考になれば幸いです。
  • id:wwworz
    kumonoyouni さん、コメントありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません