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\"