2012-08-08 86 views
0

我想用VBscript列出在windows server 2008 R2上安装的软件。 我想验证必备软件(其中之一是.NET Framework 3.5.1)。 我实际上有两个解决方案,他们都没有显示所有的软件。在Windows Server 2008 R2上安装的VBScript列表软件

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应用程序错误报告, 微软的Visual C++ 2008可再发行, 微软安全客户端, ADOBE READER

我想发现: 。 NET框架3.5.1

我想要一个通用的解决方案来找到所有安装的软件。

SOLUTION: 看来,没有通用的方法来检查已安装的软件。我发现在这条道路的.NET框架的注册表项:

"SOFTWARE\Microsoft\MSBuild\ToolsVersion\v3.5\" 
+0

我想这两个脚本只显示通过Microsoft Windows Installer(MSI)安装的软件。你可以添加一个或两个已安装但未显示的软件示例吗?这可以证明或反驳我的假设。 – rene 2012-08-08 20:52:01

+0

我编辑了这个问题来添加信息。 – pikaille 2012-08-09 13:30:39

回答

1

而不必访问自己的服务器,看看你正在寻找安装了该软件,我只能在你怎么可能修改你的猜测脚本。

不过,也有你可能应该之外寻找其他的地方: 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”执行“查找”以查看是否显示某处可以可靠地找到它。

相关问题