Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBscript列出过去24小时内应用的修补程序_Vbscript - Fatal编程技术网

VBscript列出过去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

我有一个VB脚本,可以读取一个文本文件,一个服务器列表。然后搜索应用的最后一个windows update修补程序。我需要这个来列出过去24小时内的所有补丁。我已经把它传送到一个文本文件,我将在这里列出。这是我的密码:

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