VBscript列出过去24小时内应用的修补程序
我有一个VB脚本,可以读取一个文本文件,一个服务器列表。然后搜索应用的最后一个windows update修补程序。我需要这个来列出过去24小时内的所有补丁。我已经把它传送到一个文本文件,我将在这里列出。这是我的密码:VBscript列出过去24小时内应用的修补程序,vbscript,Vbscript,我有一个VB脚本,可以读取一个文本文件,一个服务器列表。然后搜索应用的最后一个windows update修补程序。我需要这个来列出过去24小时内的所有补丁。我已经把它传送到一个文本文件,我将在这里列出。这是我的密码: On Error Resume Next Set fso = CreateObject("Scripting.FileSystemObject") Set objSearcher = objSession.CreateUpdateSearcher Set file = fso.O
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set objSearcher = objSession.CreateUpdateSearcher
Set file = fso.OpenTextFile ("servers.txt", 1)
server = ""
On Error Resume next
Do Until file.AtEndOfStream
line = file.Readline
server = line
' 'wscript.echo server
Set objSession = CreateObject("Microsoft.Update.Session", server)
If Err.Number <> 0 Then
'WScript.Echo server & " Error: " & Err.Number & " Error (Hex): " & Hex(Err.Number) & " Source: " & Err.Source & " Description: " & Err.Description
WScript.Echo server & " Communications Error"
Err.Clear
Else
Set objSearcher = objSession.CreateUpdateSearcher
Set colHistory = objSearcher.QueryHistory(0, 1)
For Each objEntry in colHistory
Wscript.Echo server & " "
' Wscript.Echo "Operation: " & objEntry.Operation
' Wscript.Echo "Result code: " & objEntry.ResultCode
' Wscript.Echo "Exception: " & objEntry.Exception
Wscript.Echo "Date: " & objEntry.Date
Wscript.Echo "Title: " & objEntry.Title
' Wscript.Echo "Description: " & objEntry.Description
' Wscript.Echo "Unmapped exception: " & objEntry.UnmappedException
' Wscript.Echo "Client application ID: " & objEntry.ClientApplicationID
' Wscript.Echo "Server selection: " & objEntry.ServerSelection
' Wscript.Echo "Service ID: " & objEntry.ServiceID
i = 1
Next
End If
Loop
file.Close
有没有其他方法代替使用
objSearcher.QueryHistory(0,1)
?这只列出了最后一次更新。我需要它列出过去24小时内应用的所有修补程序。在中为每次迭代放置以下代码
If DateDiff("h", objEntry.Date, Now) > 24 Then Exit Do End If
试试这个
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set objSearcher = objSession.CreateUpdateSearcher
Set file = fso.OpenTextFile ("servers.txt", 1)
server = ""
Do Until file.AtEndOfStream
line = file.Readline
server = line
' 'wscript.echo server
Set objSession = CreateObject("Microsoft.Update.Session", server)
If Err.Number <> 0 Then
'WScript.Echo server & " Error: " & Err.Number & " Error (Hex): " & Hex(Err.Number) & " Source: " & Err.Source & " Description: " & Err.Description
WScript.Echo server & " Communications Error"
Err.Clear
Else
Set objSearcher = objSession.CreateUpdateSearcher
Set colHistory = objSearcher.QueryHistory(0, 1)
For Each objEntry In colHistory
If DateDiff("h", objEntry.Date, Now) <= 24 Then
Wscript.Echo server & " "
'Wscript.Echo "Operation: " & objEntry.Operation
'Wscript.Echo "Result code: " & objEntry.ResultCode
'Wscript.Echo "Exception: " & objEntry.Exception
Wscript.Echo "Date: " & objEntry.Date
Wscript.Echo "Title: " & objEntry.Title
'Wscript.Echo "Description: " & objEntry.Description
'Wscript.Echo "Unmapped exception: " & objEntry.UnmappedException
'Wscript.Echo "Client application ID: " & objEntry.ClientApplicationID
'Wscript.Echo "Server selection: " & objEntry.ServerSelection
'Wscript.Echo "Service ID: " & objEntry.ServiceID
End If
Next
End If
Loop
file.Close
出错时继续下一步
设置fso=CreateObject(“Scripting.FileSystemObject”)
设置objSearcher=objSession.CreateUpdateSearcher
Set file=fso.OpenTextFile(“servers.txt”,1)
server=“”
直到file.AtEndOfStream
line=file.Readline
服务器=线路
“”wscript.echo服务器
Set objSession=CreateObject(“Microsoft.Update.Session”,服务器)
如果错误号为0,则
'WScript.Echo服务器&“错误:”&Err.Number&“错误(十六进制):”&Hex(错误编号)&“源:”&Err.Source&“描述:”&Err.Description
WScript.Echo服务器&“通信错误”
呃,明白了
其他的
设置objSearcher=objSession.CreateUpdateSearcher
Set colHistory=objSearcher.QueryHistory(0,1)
对于历史上的每一个对象
如果DateDiff(“h”,objEntry.Date,Now)我把它放在这里了吗:对于colHistory中的每个objEntry如果DateDiff(“h”,objEntry.Date,Now)>24,那么退出do End If this works,但它似乎只对列表中的第一个服务器执行此操作??
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set objSearcher = objSession.CreateUpdateSearcher
Set file = fso.OpenTextFile ("servers.txt", 1)
server = ""
Do Until file.AtEndOfStream
line = file.Readline
server = line
' 'wscript.echo server
Set objSession = CreateObject("Microsoft.Update.Session", server)
If Err.Number <> 0 Then
'WScript.Echo server & " Error: " & Err.Number & " Error (Hex): " & Hex(Err.Number) & " Source: " & Err.Source & " Description: " & Err.Description
WScript.Echo server & " Communications Error"
Err.Clear
Else
Set objSearcher = objSession.CreateUpdateSearcher
Set colHistory = objSearcher.QueryHistory(0, 1)
For Each objEntry In colHistory
If DateDiff("h", objEntry.Date, Now) <= 24 Then
Wscript.Echo server & " "
'Wscript.Echo "Operation: " & objEntry.Operation
'Wscript.Echo "Result code: " & objEntry.ResultCode
'Wscript.Echo "Exception: " & objEntry.Exception
Wscript.Echo "Date: " & objEntry.Date
Wscript.Echo "Title: " & objEntry.Title
'Wscript.Echo "Description: " & objEntry.Description
'Wscript.Echo "Unmapped exception: " & objEntry.UnmappedException
'Wscript.Echo "Client application ID: " & objEntry.ClientApplicationID
'Wscript.Echo "Server selection: " & objEntry.ServerSelection
'Wscript.Echo "Service ID: " & objEntry.ServiceID
End If
Next
End If
Loop
file.Close