Usuário com melhor resposta
Scprit para saber os membros do grupo administradores local de computadores na rede

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 RegExpRegEx.Pattern = "^Disparando contra ([^[]+).*$"
Do Until objExec.StdOut.AtEndOfStream
Line = objExec.StdOut.ReadLine
If RegEx.Test(Line) Then reverso = RegEx.Replace(Line, "$1")
Loopreverso = ucase(trim(reverso))
If InStr(reverso, equip) Then
check_reverse = reverso & ";PING REVERSO OK"
Else
check_reverse = reverso & ";FALHA NO PING REVERSO"
End Ifend function
objFile.Close
objFile2.CloseWscript.Echo count & " Micros Grupo Administrator"
Bruno Prata
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.- Marcado como Resposta Fábio JrModerator segunda-feira, 18 de novembro de 2013 19:04
Todas as 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.- Marcado como Resposta Fábio JrModerator segunda-feira, 18 de novembro de 2013 19:04