我想用VBscript列出Windows Server 2008 R2上已安装的软件。 我想验证必备软件(其中一个是.NET Framework 3.5.1)。 我实际上有两个解决方案,他们都没有显示所有的软件。
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 Redistributable, Microsoft安全客户端, Adobe Reader
我想要找到的内容: .NET framework 3.5.1
我想要一个通用的解决方案来找到所有安装的软件。
解决方案: 似乎没有通用的方法来检查已安装的软件。我在这条路径中找到了.NET框架注册表项:
"SOFTWARE\Microsoft\MSBuild\ToolsVersion\v3.5\"
答案 0 :(得分:0)
无法访问您的服务器以查看您正在寻找的软件是如何安装的,我只能猜测您如何修改脚本。
但是,您可能还应该寻找其他地方: HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \卸载\
例如,您可能希望查看:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKLM\SOFTWARE\Classes\Installer
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData
您可能会在其中一个位置找到您要找的内容。
您可能还希望使用RegEdit对“.NET Framework 3.5.1”执行“查找”,以查看是否显示在可以找到它的位置。