none
Scprit para saber os membros do grupo administradores local de computadores na rede RRS feed

  • Pergunta

  • Pessoal já tenho até um script que faz isso, mas na outra empresa que estou ele acusa todas as máquinas offline. Segue o código!

     

    on error resume next
    Const ForAppending = 8
    count = 0
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("micros.txt", 1)
    Set objFile2 = objFSO.OpenTextFile("micros_exceção_list.csv", ForAppending, True)

    objFile2.WriteLine "Código do Equipamento" & ";" & "Status & ADM"
    Do Until objFile.AtEndOfStream
     count = count + 1
     vArquivo = Trim(objFile.ReadLine)
     StrSP = VArquivo
     If (vArquivo  <> "") Then
         strComputer = VArquivo
         Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
             ExecQuery("select * from Win32_PingStatus where address = '"_
                 & strComputer & "'")
         For Each objStatus in objPing
             If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0  Then
             objFile2.WriteLine strSP & ";" & "Offline"
             Else
                reverse = check_reverse(objStatus.ProtocolAddress,ucase(strSP))
                if InStr(reverse, "FALHA NO PING REVERSO") Then
                  objFile2.WriteLine strSP & ";" & "Offline"
                else
                  objFile2.WriteLine strSP & ";" & "Online"       
                  Set colGroups = GetObject("WinNT://" & strComputer & "")
                  colGroups.Filter = Array("group")
                  For Each objGroup In colGroups
                    if (objGroup.Name = "Administrators") or (objGroup.Name = "Power Users") or (objGroup.Name = "Administradores") or (objGroup.Name = "Usuários avançados") Then
                      For Each objUser in objGroup.Members
                        If (objUser.name  <> "") and (ucase(objUser.name) <> "ADMINISTRATOR") and (ucase(objUser.name) <> "ADMINISTRADOR") and (ucase(objUser.name) <> "CLIENTI") And (ucase(objUser.name) <> "TMERSRVD")  and (ucase(objUser.name) <> "GL_BC")  and (ucase(objUser.name) <> "DOMAIN ADMINS") and (ucase(objUser.name) <> "ADMTIVI") and (ucase(objUser.name) <> "ADM_NOTEBOOKS") Then
                          objFile2.WriteLine objGroup.Name & ";" &  ucase(objUser.Name)
                        end If
                      next
                    end If
                  Next
                End if
              End If
         Next
     end if
                
             
    Loop
                

                  
    function Check_Reverse(resp_ip, equip)
      strCmd = "ping -a -n 1 " & resp_ip
      Set objShell = CreateObject("WScript.Shell")
      Set objExec = objShell.Exec(strCmd)
      Set RegEx = New RegExp

      RegEx.Pattern = "^Disparando contra ([^[]+).*$"

      Do Until objExec.StdOut.AtEndOfStream
        Line = objExec.StdOut.ReadLine
        If RegEx.Test(Line) Then reverso = RegEx.Replace(Line, "$1")
      Loop

      reverso = ucase(trim(reverso))
     
      If InStr(reverso, equip) Then
        check_reverse = reverso & ";PING REVERSO OK"
      Else
        check_reverse = reverso & ";FALHA NO PING REVERSO"
      End If

    end function

    objFile.Close
    objFile2.Close

    Wscript.Echo count & " Micros Grupo Administrator"


    Bruno Prata
    segunda-feira, 26 de julho de 2010 20:34

Respostas

  • Provavelmente o Firewall nessa empresa está habilitado.

    Você não pode rodar esse script local em cada máquina via GPO?

    Abraço.


    Gabriel Nascimento MCP / MCTS / MCSA / MCSE / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    terça-feira, 3 de agosto de 2010 13:12

Todas as Respostas

  • Alguem POde me ajudar.
    Bruno Prata
    domingo, 1 de agosto de 2010 23:22
  • Provavelmente o Firewall nessa empresa está habilitado.

    Você não pode rodar esse script local em cada máquina via GPO?

    Abraço.


    Gabriel Nascimento MCP / MCTS / MCSA / MCSE / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    terça-feira, 3 de agosto de 2010 13:12