none
Script para identificar quem adicionou o usuário no grupo administradores RRS feed

  • Pergunta

  • Oi pessoal!

    Gostaria de saber se alguém tem ou sabe um script que identifica um computador na rede e em seguida, informe  qual administrador adicionou um determinado usuário ao grupo administrador?

    Um script que leia o log de segurança do windows e retorne essa informação. Vide exemplo na imagem abaixo:

    localmente conseguir coletar essas informações utilizado o Log Parser, mas na rede não sei como fazer. Help please!:)

    quinta-feira, 9 de agosto de 2012 00:50

Respostas

  • Sugestões:

    1. Verifique se a conta que você está utilizando tem direito administrativo no computador da rede
    2. Desligue o firewall do computador da rede.

    Fábio de Paula Junior

    terça-feira, 14 de agosto de 2012 00:43
    Moderador

Todas as Respostas

  •  Encontrei um script fiz algumas adaptações, porem não funciona quando é uma maquina na rede. Exibe uma mensagem de acesso negado.

    Como resolver?

    Vide exemplo:

    '===============================================================
    ' LINGUAGEM: VBScript'
    ' NAME: ECAD' VERSÃO: 1.0
    ' AUTHOR: DICAS QUE FUNFA
    ' DATE : 12/08/2012
    ' by: http://dicasquefunfa.com.br
    '==============================================================
    Option Explicit
    'Menu----------------------------------------------
    Dim objmenu, username, wshshell, fso
    '--------------------------------------------------
    Dim objFSO, objFolder, objFile, objWMI, objItem, objShell
    Dim strComputer, strFileName, strFileOpen, strFolder, strPath
    Dim intEvent, intNumberID, intRecordNum, colLoggedEvents
    Dim intEventType, strLogType
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set objmenu = New gui_menu
    objmenu.getInput
    
    Class gui_menu
    private Input, quit, strText, cmd, arrMenu, i, return, strProg, strComputer
    
    Private Sub pickInput
    
    	Select Case Input
    		Case "1"
    			' --------------------------------------------------------
    			' Definir o nome da pasta e do arquivo
    			strComputer = InputBox("Digite o nome do computador SO Windows XP")
    			strFileName = "\Log_Sec_XP.txt"
    			strFolder = "c:\LOG_SEG"
    			strPath = strFolder & strFileName
    			' Definir números o evento
    			intNumberID =  636 ' ID do evento
    			intEventType = 4
    			strLogType = "'Security'"
    			intRecordNum = 0
    			' -----------------------------------------------------
    			' Seção para criar a pasta e salvar o arquivo.
    			' Criar o File System Object
    			Set objFSO = CreateObject("Scripting.FileSystemObject")
    			' strFolder, Verifica se a pasta existe 
    			If objFSO.FolderExists(strFolder) Then
    				Set objFolder = objFSO.GetFolder(strFolder)
    			Else
    				Set objFolder = objFSO.CreateFolder(strFolder)
    				WScript.Echo "Pasta Criada Com Sucesso! " & strFolder
    			End If
    			If objFSO.FileExists(strFolder & strFileName) Then
    				Set objFolder = objFSO.GetFolder(strFolder)
    			Else
    				Set objFile = objFSO.CreateTextFile(strFolder & strFileName)
    				Wscript.Echo "Arquivo criada com Sucesso! " & strFolder & strFileName
    			End If 
    			' --------------------------------------------------
    			' Comandos vitais
    			set objFile = nothing
    			set objFolder = nothing
    			' ----------------------------------------------------
    			' Escreve no arquivo
    			Wscript.Echo " Pressione OK e aguarde 30 segundos "
    			Set strFileOpen = objFso.CreateTextFile(strPath, True)
    			' ----------------------------------------------------------
    			' WMI Seção Núcleo
    			Set objWMI = GetObject("winmgmts:" _
    				& "{impersonationLevel=impersonate,(Security)}!\\" _
    				& strComputer & "\root\cimv2")
    			Set colLoggedEvents = objWMI.ExecQuery _
    				("Select * from Win32_NTLogEvent Where Logfile =" & strLogType)
    			' ----------------------------------------------------------
    			' Next section loops through ID properties
    			For Each objItem in colLoggedEvents
    				If objItem.EventCode = intNumberID Then
    					If objItem.EventType = intEventType Then
    						strFileOpen.WriteLine("Category: " & objItem.Category _
    						& " string " & objItem.CategoryString) 
    						strFileOpen.WriteLine("ComputerName: " & objItem.ComputerName) 
    						strFileOpen.WriteLine("Logfile: " & objItem.Logfile _ 
    						& " source " & objItem.SourceName) 
    						strFileOpen.WriteLine("EventCode: " & objItem.EventCode) 
    						strFileOpen.WriteLine("EventType: " & objItem.EventType) 
    						strFileOpen.WriteLine("Type: " & objItem.Type) 
    						strFileOpen.WriteLine("User: " & objItem.User) 
    						strFileOpen.WriteLine("Message: " & objItem.Message)
    						strFileOpen.WriteLine (" ")
    						intRecordNum = intRecordNum +1
    					End If 
    				End If
    			Next
    			'Confirma se o script foi concluído e abre o arquivo
    			Set objShell = CreateObject("WScript.Shell")
    			objShell.run ("Explorer" &" " & strPath & "\" )
    			'---------------------------------------------------------------
    			startProg cmd
    			getInput
    
    		Case "2"
    			' --------------------------------------------------------
    			' Definir o nome da pasta e do arquivo
    			strComputer = InputBox("Digite o nome do computador Windows 7")
    			strFileName = "\Log_Seg_W7.txt"
    			strFolder = "C:\LOG_SEG"
    			strPath = strFolder & strFileName
    			' Definir números o evento
    			intNumberID = 4732 ' ID do evento
    			intEventType = 4
    			strLogType = "'Security'"
    			intRecordNum = 0
    			' -----------------------------------------------------
    			' Seção para criar a pasta e salvar o arquivo.
    			' Criar o File System Object
    			Set objFSO = CreateObject("Scripting.FileSystemObject")
    			' strFolder, Verifica se a pasta existe 
    			If objFSO.FolderExists(strFolder) Then
    			Set objFolder = objFSO.GetFolder(strFolder)
    			Else
    			Set objFolder = objFSO.CreateFolder(strFolder)
    			WScript.Echo "Pasta Criada Com Sucesso! " & strFolder
    			End If
    			If objFSO.FileExists(strFolder & strFileName) Then
    			Set objFolder = objFSO.GetFolder(strFolder)
    			Else
    			Set objFile = objFSO.CreateTextFile(strFolder & strFileName)
    			Wscript.Echo "Arquivo criado com Sucesso! " & strFolder & strFileName
    			End If 
    			' --------------------------------------------------
    			' Comandos vitais
    			set objFile = nothing
    			set objFolder = nothing
    			' ----------------------------------------------------
    			' Escreve no arquivo
    			Wscript.Echo " Pressione OK e aguarde 30 segundos "
    			Set strFileOpen = objFso.CreateTextFile(strPath, True)
    			' ----------------------------------------------------------
    			' WMI Seção Núcleo
    			Set objWMI = GetObject("winmgmts:" _
    			& "{impersonationLevel=impersonate,(Security)}!\\" _
    			& strComputer & "\root\cimv2")
    			Set colLoggedEvents = objWMI.ExecQuery _
    			("Select * from Win32_NTLogEvent Where Logfile =" & strLogType)
    			' ----------------------------------------------------------
    			' Next section loops through ID properties
    			For Each objItem in colLoggedEvents
    			If objItem.EventCode = intNumberID Then
    			If objItem.EventType = intEventType Then
    			strFileOpen.WriteLine("Category: " & objItem.Category _
    			& " string " & objItem.CategoryString) 
    			strFileOpen.WriteLine("ComputerName: " & objItem.ComputerName) 
    			strFileOpen.WriteLine("Logfile: " & objItem.Logfile _ 
    			& " source " & objItem.SourceName) 
    			strFileOpen.WriteLine("EventCode: " & objItem.EventCode) 
    			strFileOpen.WriteLine("EventType: " & objItem.EventType) 
    			strFileOpen.WriteLine("Type: " & objItem.Type) 
    			strFileOpen.WriteLine("User: " & objItem.User) 
    			strFileOpen.WriteLine("Message: " & objItem.Message)
    			strFileOpen.WriteLine (" ")
    			intRecordNum = intRecordNum +1
    			End If 
    			End If
    			Next
    			'Confirma se o script foi concluído e abre o arquivo
    			Set objShell = CreateObject("WScript.Shell")
    			objShell.run ("Explorer" &" " & strPath & "\" )
    			'-------------------------------------------------------------------
    			'startProg cmd
    			getInput
    			'-------------------------------------------------------------------
    			
    		Case "3"
    			quit = MsgBox ("Você realmente deseja sair?", 36, "Deseja Sair?")'52
    			If quit = 6 Then
    			MsgBox ("Excelente trabalho!!")
    			WScript.Quit
    			Else
    			getInput
    			End If
    			Case ""
    			quit = MsgBox ("Você realmente deseja sair?", 36, "Deseja Sair?")'52
    			If quit = 6 Then
    			MsgBox ("Excelente trabalho!!")
    			WScript.Quit
    			Else
    			getInput
    			End If
    			
    		Case Else
    			MsgBox ("Hum! É uma entrada incorreta, tente outra!")
    			getInput
    	End Select
    
    End Sub 'pickInput
    
    Public sub getInput
    	arrMenu = Array("Windows XP", "Windows 7", "Sair")
    	strText = "Escolha umas das opções abaixo." & vbNewLine
    	For i = 1 To (UBound(arrMenu) + 1)
    		strText = strText & i & " - " & arrMenu(i - 1) & vbNewLine
    	Next
    	Input = InputBox(strText, "Escolha uma das opções")
    	pickInput
    End sub 'getInput
    	
    End Class 'gui_menu
    WScript.Quit
    

    • Editado Fábio JrModerator terça-feira, 14 de agosto de 2012 00:41 Formatação do código
    segunda-feira, 13 de agosto de 2012 14:09
  • Sugestões:

    1. Verifique se a conta que você está utilizando tem direito administrativo no computador da rede
    2. Desligue o firewall do computador da rede.

    Fábio de Paula Junior

    terça-feira, 14 de agosto de 2012 00:43
    Moderador
  • Conseguiu utilizar o script.

    Fábio de Paula Junior

    quarta-feira, 15 de agosto de 2012 00:34
    Moderador
  • Oi Fábio,

    Conseguir. Um colega testou e rodou. A minha conta estava com problema. vlw.

    quarta-feira, 15 de agosto de 2012 14:22