none
Report - Administrador Local das Estacoes. RRS feed

  • Pergunta

  • Pessoal,,

               Boa noite, a todos..

    Estou precisando do help de voces, na seguinte questao: Tenho que gerar relatorio que mostre o nome da estaçao e os grupos que compoem o grupo de administrador local de cada estacao.

    Desde, agora agradeço a ajuda de todos..

    Obrigado.

    Atenciosamente,

    Carlos

    segunda-feira, 16 de março de 2009 21:50

Respostas

  • Olá,

    Pode tentar rodar este script nas estações.

    __________________________________________  
     
    "INICIO DO SCRIPT  
     
    Set WshNetwork = WScript.CreateObject("WScript.Network")  
     
    StrComputer = WshNetwork.ComputerName  
     
     
    Set objWMIService = GetObject("winmgmts:\\" & StrComputer & "\root\cimv2") 'VC DEVE SER ADMINISTRADOR DA MAQUINA E N PODE HAVER FIREWALL NO CAMINHO  
      if Err.number <> 0 then  
          'WriteLog StrComputer & vbTab & Err.Description & vbTab & "Tentando conecta-se via WMI ao PC remoto"  
        Err.Clear  
       wscript.quit  
      End if     
     
    Set colAccounts = objWMIService.ExecQuery _  
        ("Select * From Win32_Group Where Domain = '" & StrComputer & "'")  
     
    For Each objAccount in colAccounts  
     'wsh.echo objAccount.name  
      If objAccount.SID ="S-1-5-32-544" Then 'Achou  o grupo administradores   
         Set ObjAdministrador = GetObject("WinNT://" & strComputer & "/" & objAccount.Name & "")  
         StrGroup = objAccount.Name  
     End if  
    Next  
     
    Local = "\\servidor\compartilhamento\" 'Local para salvar o arquivo .CVS com os membros do grupo especificado  
    FileLog = Local & WshNetwork.ComputerName & "_" & StrGroup  & ".csv"  
    ActionList = "no" 
     
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")  
    Const ForReading = 1ForWriting = 2ForAppending = 8 
    Set ObjFileRead = ObjFSO.opentextfile(FileLog, ForReading, True)  
    Set ObjFileAppending = ObjFSO.opentextfile(FileLog, ForAppending, True)  
        
    Set objNetwork = CreateObject("WScript.Network")  
    Set objGroup = GetObject("WinNT://" & StrComputer & "/" & StrGroup & ",group")   
    StrMemberAdsPath = "WinNT://" & StrComputer & "/" & StrMember ' AdsPath do Membro  
    AdsPathGroup = objGroup.AdsPath  
     
     
    For Each objUser In objGroup.Members  
     WriteLog WshNetwork.ComputerName &","& Ucase(objUser.name) &","& objUser.class  
     ActionList = "yes" 
    Next  
     
    Function WriteLog (Text)  
     ObjFileAppending.WriteLine Text  
    End Function  
     
    'FIM DO SCRIPT  
     
    _________________________________________________________  
     

    Veja se te ajuda, um abraço!
    Alexandre Perazza - Caso a resposta lhe ajude, não esqueça de validá-la. http://aperazza.spaces.live.com
    segunda-feira, 16 de março de 2009 22:38
  • Boa noite,

    se vc estiver usando SCCM, vc pode fazer via script por exemplo para rodar nas maquinas e salvar 1 txt em qquer lugar na rede...

    com cert existem maneiras mais elaboradas, mas essa eh a mais rapida...

    use esse script como base

    strPath="\\servidor\pastacompartilhada\" 
       
    Set objNet = CreateObject("WScript.Network")  
    strComputer=objNet.ComputerName  
       
    strOutputFile=strPath & "LocalAccts_" & strComputer & ".txt"  
     
    Const ForAppending = 8 
          
    Set objFSO = CreateObject("Scripting.FileSystemObject")  
    Set objTextFile = objFSO.OpenTextFile _  
        (strOutputFile, ForAppending, True)  
       
    Set colGroups = GetObject("WinNT://" & strComputer & "")  
    colGroups.Filter = Array("group")  
       
    For Each objGroup In colGroups  
        For Each objUser in objGroup.Members  
            objTextFile.WriteLine(strComputer & vbTab & objGroup.Name & vbTab & _  
                objUser.Name)  
        Next  
    Next  
       
    objTextFile.Close  
     

    espero ter ajudado,
    Raphael - MCP/MCSA Security/MCSE Security/MCTS: SCCM & MDOP & W2k8/MCITP - http://www.dotnetwork.com.br
    segunda-feira, 16 de março de 2009 22:40
    Moderador

Todas as Respostas

  • Olá,

    Pode tentar rodar este script nas estações.

    __________________________________________  
     
    "INICIO DO SCRIPT  
     
    Set WshNetwork = WScript.CreateObject("WScript.Network")  
     
    StrComputer = WshNetwork.ComputerName  
     
     
    Set objWMIService = GetObject("winmgmts:\\" & StrComputer & "\root\cimv2") 'VC DEVE SER ADMINISTRADOR DA MAQUINA E N PODE HAVER FIREWALL NO CAMINHO  
      if Err.number <> 0 then  
          'WriteLog StrComputer & vbTab & Err.Description & vbTab & "Tentando conecta-se via WMI ao PC remoto"  
        Err.Clear  
       wscript.quit  
      End if     
     
    Set colAccounts = objWMIService.ExecQuery _  
        ("Select * From Win32_Group Where Domain = '" & StrComputer & "'")  
     
    For Each objAccount in colAccounts  
     'wsh.echo objAccount.name  
      If objAccount.SID ="S-1-5-32-544" Then 'Achou  o grupo administradores   
         Set ObjAdministrador = GetObject("WinNT://" & strComputer & "/" & objAccount.Name & "")  
         StrGroup = objAccount.Name  
     End if  
    Next  
     
    Local = "\\servidor\compartilhamento\" 'Local para salvar o arquivo .CVS com os membros do grupo especificado  
    FileLog = Local & WshNetwork.ComputerName & "_" & StrGroup  & ".csv"  
    ActionList = "no" 
     
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")  
    Const ForReading = 1ForWriting = 2ForAppending = 8 
    Set ObjFileRead = ObjFSO.opentextfile(FileLog, ForReading, True)  
    Set ObjFileAppending = ObjFSO.opentextfile(FileLog, ForAppending, True)  
        
    Set objNetwork = CreateObject("WScript.Network")  
    Set objGroup = GetObject("WinNT://" & StrComputer & "/" & StrGroup & ",group")   
    StrMemberAdsPath = "WinNT://" & StrComputer & "/" & StrMember ' AdsPath do Membro  
    AdsPathGroup = objGroup.AdsPath  
     
     
    For Each objUser In objGroup.Members  
     WriteLog WshNetwork.ComputerName &","& Ucase(objUser.name) &","& objUser.class  
     ActionList = "yes" 
    Next  
     
    Function WriteLog (Text)  
     ObjFileAppending.WriteLine Text  
    End Function  
     
    'FIM DO SCRIPT  
     
    _________________________________________________________  
     

    Veja se te ajuda, um abraço!
    Alexandre Perazza - Caso a resposta lhe ajude, não esqueça de validá-la. http://aperazza.spaces.live.com
    segunda-feira, 16 de março de 2009 22:38
  • Boa noite,

    se vc estiver usando SCCM, vc pode fazer via script por exemplo para rodar nas maquinas e salvar 1 txt em qquer lugar na rede...

    com cert existem maneiras mais elaboradas, mas essa eh a mais rapida...

    use esse script como base

    strPath="\\servidor\pastacompartilhada\" 
       
    Set objNet = CreateObject("WScript.Network")  
    strComputer=objNet.ComputerName  
       
    strOutputFile=strPath & "LocalAccts_" & strComputer & ".txt"  
     
    Const ForAppending = 8 
          
    Set objFSO = CreateObject("Scripting.FileSystemObject")  
    Set objTextFile = objFSO.OpenTextFile _  
        (strOutputFile, ForAppending, True)  
       
    Set colGroups = GetObject("WinNT://" & strComputer & "")  
    colGroups.Filter = Array("group")  
       
    For Each objGroup In colGroups  
        For Each objUser in objGroup.Members  
            objTextFile.WriteLine(strComputer & vbTab & objGroup.Name & vbTab & _  
                objUser.Name)  
        Next  
    Next  
       
    objTextFile.Close  
     

    espero ter ajudado,
    Raphael - MCP/MCSA Security/MCSE Security/MCTS: SCCM & MDOP & W2k8/MCITP - http://www.dotnetwork.com.br
    segunda-feira, 16 de março de 2009 22:40
    Moderador
  • Alexandre,,

             Bom dia, obrigado pela resposta.

    Estarei validando em ambiente de teste.


    Atenciosamente,

    Carlos Zorzal

    terça-feira, 17 de março de 2009 13:17