none
Resultado para teste de ping RRS feed

  • Pergunta

  • Boa tarde.

    Estou com um script que analisa um txt com vários Ips e retorna em um arquivo de saída o resultado, porem sempre o log é gerado como "down", ele parece nao esta funcionado a condição de analisar se o IP responde ou não, poderiam me ajudar por favor:

    Queria que ele me retornasse algo assim: IP respondendo ou Ip nao respondendo (no caso abaixo é "down" e "up).

    dim strInputPath, strOutputPath, strStatus
    dim objFSO, objTextIn, objTextOut

    strInputPath = "c:\TEMP\serverlist.txt" '- location of input
    strOutputPath = "c:\TEMP\resultado.txt" '- location of output

    set objFSO = CreateObject("Scripting.FileSystemObject")
    set objTextIn = objFSO.OpenTextFile( strInputPath,1 )
    set objTextOut = objFSO.CreateTextFile( strOutputPath )
    objTextOut.WriteLine("computer,status")

    Do until objTextIn.AtEndOfStream = True
    strComputer = objTextIn.ReadLine
    if fPingTest( strComputer ) then
    strStatus = "UP"
    else
    strStatus = "DOWN"
    end if
    objTextOut.WriteLine(strComputer & "," & strStatus)
    loop

    function fPingTest( strComputer )
    dim objShell,objPing
    dim strPingOut, flag
    set objShell = CreateObject("Wscript.Shell")
    set objPing = objShell.Exec("ping " & strComputer)
    strPingOut = objPing.StdOut.ReadAll
    if instr(LCase(strPingOut), "reply") then
    flag = TRUE
    else
    flag = FALSE
    end if
    fPingTest = flag

    end function

    Obrigado desde ja.

    quarta-feira, 17 de abril de 2013 15:32

Respostas

  • André,

    Faça um teste fora do script também, abra um prompt e faça um ping para um desses hosts que aparece como down.

    Outra coisa que observei, o script procura pela palavra "reply" na saída do ping para considerar a máquina como "UP", se você estiver executando de um micro em Português então vai ter que alterar esta linha:

    if instr(LCase(strPingOut), "reply") then

    por isto

    if instr(LCase(strPingOut), "Resposta") then

    Pra complementar estou passando um link de um script em powershell que lê uma planilha Excel, semelhante ao seu script:

    Testa conexão em uma lista de computadores de uma planilha

    http://gallery.technet.microsoft.com/Testa-conexo-em-uma-lista-a8feec2d


    Fábio de Paula Junior

    • Marcado como Resposta andre080310 quarta-feira, 17 de abril de 2013 20:38
    quarta-feira, 17 de abril de 2013 18:59
    Moderador

Todas as Respostas

  • andré,

    Fiz o teste com esse script e funcionou!! Quando o host esta respondendo aparece UP e quando não responde a ping Down.

    Da uma olhada se não tem espaço nos nomes dos equipamentos, isso é comum acontecer

    vlw

    quarta-feira, 17 de abril de 2013 18:12
  • André,

    Faça um teste fora do script também, abra um prompt e faça um ping para um desses hosts que aparece como down.

    Outra coisa que observei, o script procura pela palavra "reply" na saída do ping para considerar a máquina como "UP", se você estiver executando de um micro em Português então vai ter que alterar esta linha:

    if instr(LCase(strPingOut), "reply") then

    por isto

    if instr(LCase(strPingOut), "Resposta") then

    Pra complementar estou passando um link de um script em powershell que lê uma planilha Excel, semelhante ao seu script:

    Testa conexão em uma lista de computadores de uma planilha

    http://gallery.technet.microsoft.com/Testa-conexo-em-uma-lista-a8feec2d


    Fábio de Paula Junior

    • Marcado como Resposta andre080310 quarta-feira, 17 de abril de 2013 20:38
    quarta-feira, 17 de abril de 2013 18:59
    Moderador
  • Fabio Jr.

    É isso mesmo, o cmd aqui é português, por isso não estava funcionando, agora esta ok.

    Muito obrigado.

    quarta-feira, 17 de abril de 2013 20:38
  • Por isso eu prefiro o Powershell, ele já tem um comando para testar conexão, isto deixa independente do idioma da estação.

    Fábio de Paula Junior

    quarta-feira, 17 de abril de 2013 20:46
    Moderador