0

Windows Server 2008 R2 にインストールされているソフトウェアを VBscript で一覧表示したいと考えています。前提ソフトウェアを確認したい (そのうちの 1 つは .NET Framework 3.5.1)。私は実際には 2 つのソリューションを持っていますが、どちらもすべてのソフトウェアを表示しているわけではありません。

Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
installedSoftwaresPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"

Set objReg = GetObject("winmgmts://./root/default:StdRegProv")

objReg.EnumKey HKLM, installedSoftwaresPath, arrSubkeys
For Each strSubkey In arrSubkeys
    Ret = objReg.GetStringValue(HKLM, installedSoftwaresPath & strSubkey, "DisplayName", SoftwareName)
    If Ret <> 0 Then
    objReg.GetStringValue HKLM, strKey & strSubkey, "QuietDisplayName", SoftwareName       
    End If
    If SoftwareName<> "" Then
        WScript.Echo VbCrLf & "Display Name: " & SoftwareName
    End If
Next

他の解決策はこれです:

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colSoftware = objWMIService.ExecQuery("Select * from Win32_Product")

For Each objSoftware in colSoftware
    WScript.Echo objSoftware.Caption
Next

インストールされているすべてのソフトウェアを取得することは可能ですか? そうでない場合は、前提条件となるすべてのソフトウェアに対して特定のソリューションを作成するつもりです。

編集:私のスクリプトで見つかったいくつかのソフトウェア:

Microsoft アプリケーション エラー報告、Microsoft Visual C++ 2008 再頒布可能パッケージ、Microsoft Security Client、Adobe Reader

私が見つけたいもの:.NET Framework 3.5.1

インストールされているすべてのソフトウェアを見つけるための一般的なソリューションが必要です。

解決策 : インストールされているソフトウェアを確認する一般的な方法はないようです。このパスで .NET フレームワークのレジストリ キーを見つけました。

"SOFTWARE\Microsoft\MSBuild\ToolsVersion\v3.5\"
4

1 に答える 1

0

探しているソフトウェアがどのようにインストールされているかを確認するためにサーバーにアクセスする必要がないので、スクリプトを変更する方法を推測することしかできません。

ただし、他にもおそらく探すべき場所があります:HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall \

たとえば、次の情報を確認できます。

HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKLM\SOFTWARE\Classes\Installer
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData

それらの場所の1つで探しているものが見つかる可能性があります。

また、RegEditを使用して「.NETFramework 3.5.1」の「検索」を実行し、確実に検索できる場所に表示されるかどうかを確認することもできます。

于 2012-08-09T15:22:49.567 に答える