Войти

Показать полную графическую версию : Поиск есть конкретное обнавление на компьютере?


Спаситель
04-02-2014, 10:01
Не могу найти как сделать поиск в VBS поиск на компьютере нужного обновление.

У меня есть небольшой чекер который проверяет совместимость компьютера, версии IE, RDP и сертификата, но застрял на поиске обнавления.
Часть кода что бы было более понятно.

Поиск версии IE


Function DetectIEVersion
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")

IEVer = objFSO.GetFileVersion(ProgDir & "\Internet Explorer\iexplore.exe")
arrIEVer = Split(IEVer, ".")

Select Case arrIEVer(0)

Case 7
imageurl = "ok.png"
usermessage = ie7_msg
HasIE7P = true
Case 8
imageurl = "ok.png"
usermessage = ie8_msg
HasIE7P = true
Case 9
imageurl = "ok.png"
usermessage = ie9_msg
HasIE7P = true
Case 10
imageurl = "ok.png"
usermessage = ie10_msg
HasIE7P = true
Case 11
imageurl = "ok.png"
usermessage = ie11_msg
HasIE7P = true
Case Else
imageurl = "fail.png"
usermessage = ieold_msg
End Select

OutputRows = OutputRows & " <tr><td width='20'><image src='" & imageurl & "' /></td><td>" & usermessage & "</td></tr>" & vbcrlf

Iska
04-02-2014, 10:37
Во-первых, убрать «On Error Resume Next». Во-вторых, обязательно использовать «Option Explicit». В-третьих, я бы предпочёл:
Option Explicit

Dim objFSO

Set objFSO = CreateObject("Scripting.FileSystemObject")

With CreateObject("InternetExplorer.Application")
MsgBox objFSO.GetFileVersion(.FullName)

.Quit
End With

Set objFSO = Nothing


Не могу найти как сделать поиск в VBS поиск на компьютере нужного обновление. »
Выбирайте: Scripts to query installed Service Packs, Patches/updates and Hotfixes - PatchAholic...The WSUS Blog! (http://msmvps.com/blogs/athif/archive/2005/11/20/76035.aspx)

Если по-простому, то так:
Option Explicit

Dim strHotFixID
Dim strServicePackInEffect


Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim collSWbemObjectSet
Dim objSWbemObjectEx


strHotFixID = "KB952011"
strServicePackInEffect = "SP3"

strComputer = "."

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set collSWbemObjectSet = objSWbemServicesEx.ExecQuery( _
"SELECT HotFixID, ServicePackInEffect, Description FROM Win32_QuickFixEngineering " & _
"WHERE HotFixID = '" & strHotFixID & "' AND ServicePackInEffect = '" & strServicePackInEffect & "'" _
)

If collSWbemObjectSet.Count > 0 Then
MsgBox "Installed."

For Each objSWbemObjectEx In collSWbemObjectSet
MsgBox objSWbemObjectEx.Description & vbCrLf & _
objSWbemObjectEx.HotFixID & vbCrLf & _
objSWbemObjectEx.ServicePackInEffect
Next
Else
MsgBox "Not installed."
End If

Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator = Nothing

WScript.Quit 0




© OSzone.net 2001-2012