none
Configurar Time-Out numa consulta WMI RRS feed

  • Pergunta

  • Pessoal

    Como posso colocar um timeout na consulta WMI que o script abaixo executa? Rodo ele numa lista de servidores, mas alguns servidores no meio simplesmente não respondem, e a consulta continua aguardando uma resposta indefinidamente, são casos em que o servidor tem algum problema de RDP ou RPC, não retorna erro, mas continua aguardando uma resposta do servidor.

    On Error Resume Next

    ComputersChecked = 0

    InputFile = InputBox("Enter path to text file list of computers to process")
    Set oFS = CreateObject("Scripting.FileSystemObject")
    Set f = oFS.OpenTextFile(InputFile)
    Computers = f.ReadAll
    f.Close
    arrComputers = Split(Computers,  vbCrLf)
    For Each Computer in arrComputers

       Set objWMIService = GetObject("winmgmts:" _
         & "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")
        
     If Err.Number <> 0 Then
            'Computer not found
            WScript.Echo UCase(Computer) & "> " & Err.Description
            Err.Clear
        Else
      
      ComputersChecked = ComputersChecked + 1
      Set colDisks = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk ")
         
      For Each objDisk in colDisks      
          If objDisk.DriveType = 5 Then
           WScript.StdOut.Write UCase(Computer) & "> Drive " & objDisk.DeviceID & " CD-ROM Drive (" 
           
           If IsNull(objDisk.VolumeName) Then
            WScript.Echo "--empty--)"
           Else
            WScript.Echo objDisk.VolumeName & ")"
           End If  
         
          End If
      Next
     End If

    Next

    wscript.Stdout.WriteBlankLines 2
    Wscript.Echo "Script completed " & Now & ". "
    'Wscript.Echo ComputersChecked & "/" & WScript.Arguments.Count  & " computers were checked."


    Ajude a melhorar a eficiência nas buscas, se foi útil, classifique. {http://rafaelcmachado.spaces.live.com} Rafael Carneiro Machado
    quinta-feira, 24 de fevereiro de 2011 16:04

Respostas