Usuário com melhor resposta
Como descobrir quem compartilhou uma pasta na rede?

Pergunta
-
Sabendo-se o nome do computador, como descobrir quem compartilhou uma pasta na rede? Existe uma forma prática de automatizar esta consulta?
Exemplo: Sabendo-se o nome do computador, eu consigo descobrir que adicionou um determinado usuário no grupo administradores consultado no log de Segurança do eventos do Windows.
Vide um exemplo automatizado:
'========================================================================== ' LINGUAGEM: VBScript' ' NAME: CABRUNCO - VERSÃO: 1.2 ' AUTHOR: DICAS QUE FUNFA ' DATE : 00/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") ' -------------------------------------------------------- ' Defini o nome da pasta e do arquivo strComputer = InputBox("Digite o nome do computador", "CABRUNCO Caça as Bruxas e Não-Conformidades") strFileName = "\Log_Seg.txt" strFolder = "C:\LOG_SEG" strPath = strFolder & strFileName ' ----------------------------------------------------- ' 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) ' ---------------------------------------------------------- Set objWMI = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate,(Security)}!\\" _ & strComputer & "\root\cimv2") Set colLoggedEvents = objWMI.ExecQuery _ ("Select * from Win32_NTLogEvent Where Logfile = 'Security' AND EventCode = '636' or EventCode = '4732'" ) '------------------------------------------------------------------------------------------ For Each objItem in colLoggedEvents strFileOpen.WriteLine("Category: " & objItem.Category _ & " string " & objItem.CategoryString) strFileOpen.WriteLine("ComputerName: " & objItem.ComputerName) strFileOpen.WriteLine("Data: " & objItem.TimeWritten) 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 Next 'Confirma se o script foi concluído e abre o arquivo Set objShell = CreateObject("WScript.Shell") objShell.run ("Explorer" &" " & strPath & "\" ) '------------------------------------------------------------------- WScript.Quit
Fonte: http://www.dicasquefunfa.com.br/2012/08/audite-as-contas-que-foram-adicionadas.html
Eu queria um parecido com esse para descobrir que compartilhou uma pasta na rede.
Help please!!
Respostas
-
Scripts como este que você passou pegam informação fornecida pelo SO, e pelo artigo que passei só Windows 7 e Windows 2008 fornecem esta informação (ainda não sei sobre o Windows 8 e 2012, mas geralmente não anda pra trás).
Fora isso acredito que só algum programa de terceiro que monitore a utilização do windows possa conseguir fazer isso.
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator sexta-feira, 5 de outubro de 2012 11:07
Todas as Respostas
-
Veja este artigo
Audit File Share
http://technet.microsoft.com/en-us/library/dd772690(WS.10).aspx
Se você souber qual id do evento vc precisa então é só modificar o script que vc enviou.
Já fez algum teste de compartilhar uma pasta e vasculhar o event viewer em seguida?
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator segunda-feira, 1 de outubro de 2012 17:47
-
Oi Fábio!
E eu sei o ID, é 578' or EventCode = '5145'
Já fiz isso. No Windows 7 eu consigo. O problema é no XP. Ele registra apenas como uso de privilegio e não diz quem foi ou o nome da pasta.
Já vir que pelo Log de evento no Windows XP não rola. Será que tem alguma outra forma?
Obrigado!!
-
Scripts como este que você passou pegam informação fornecida pelo SO, e pelo artigo que passei só Windows 7 e Windows 2008 fornecem esta informação (ainda não sei sobre o Windows 8 e 2012, mas geralmente não anda pra trás).
Fora isso acredito que só algum programa de terceiro que monitore a utilização do windows possa conseguir fazer isso.
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator sexta-feira, 5 de outubro de 2012 11:07
-