有关使这个VBScript功能更快的任何想法?

时间:2012-08-30 16:47:07

标签: vbscript

我需要在主脚本的不同部分调用此函数几次。它只是查看软件是否已安装(软件名称作为参数)。

这只是代码片段,就是这个函数。它的远程方面工作正常。

'*************************************************************************
' This Subroutine checks if software is installed on system
'*************************************************************************
Sub CheckInstalledSoftware(item)
   ' This sub is VERY slow
   blnCondition = False 'Simple check to see if software was found
   WScript.Echo("Check if " & item & " is installed.")
   WScript.Echo("------------------------------------")
   Set colSoftware = objWMISrvc.ExecQuery("SELECT * FROM Win32_Product WHERE Name = '" & item & "'")
   For Each objSoftware in colSoftware
                If (objSoftware.InstallState = 5) Then
                   WScript.Echo(item & " is installed" & vbCrLf)
                   blnCondition = True
                End  If
   Next
   If blnCondition <> True Then
      WScript.Echo(item & " is not installed" & vbCrLf)
   End If


End Sub

1 个答案:

答案 0 :(得分:2)

不幸的是,没有办法让这更快。 Win32_Product类有很大的开销。您唯一的选择是找到不需要使用此特定WMI类的方法。如果您有其他代码,则可以在执行其他操作时异步执行此部分。如果打开“添加和删除程序”对话框,您会注意到性能相同。