none
Descobrir os administradores locais de cada maquina RRS feed

  • Pergunta

  • Galera, como consigo listar por maquina, todos os usuarios que são administradores locais em uma rede winXP / 2K?

    Gostaria que a informação fosse adicionada toda em um arquivo para depois eu verificar.

    Exemplo:

    Computador1

    Administradores

    Joao

    paulo

     

    Computador2

    Administradores

    Afonso

    Pedro

     

    Vi um exemplo parecido, mas não faz desta forma.

     

    Agradeço o espaço e fico no aguardo.

    quinta-feira, 24 de agosto de 2006 22:57

Respostas

  • Tente o código abaixo, na linha "SELECT ... " coloque o caminho LDAP de seu domínio.

     

    salve o código num arquivo VBS e execute-o  em umprompt de comando utilizando o comando CSCRIPT arquivo.vbs se quiser jogar para um txt adicione  >C:\ARQUIVO.TXT , acho que já ajuda.

    '************************

    On Error Resume Next

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _
            "SELECT distinguishedName FROM 'LDAP://DC=zi,DC=if,DC=atcsg,DC=net' WHERE objectCategory='Computer'"
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF

     strPath = objRecordSet.Fields("distinguishedName").Value
      
      x=("LDAP://"&strpath)
      Set objComp = GetObject(x)
      
      strComputer = (objcomp.cn)
      
      Set colGroups = GetObject("WinNT://" & strComputer & "")
      colGroups.Filter = Array("group")
      
      wscript.echo (objcomp.cn)
      
      
      For each objGroup In colGroups
            
          if Cstr(objGroup.Name) = "Administrators" then
           Wscript.Echo objGroup.Name
           
           For Each objUser in objGroup.Members
             
                Wscript.Echo vbTab & objUser.Name
           Next
           
          End if
      Next

      


     objRecordSet.MoveNext
    Loop

    segunda-feira, 28 de agosto de 2006 17:50

Todas as Respostas

  • Vc tem SMS na rede?

     

    sexta-feira, 25 de agosto de 2006 01:55
  •  

    Eu nao tenho sms na minha rede.

    sexta-feira, 25 de agosto de 2006 13:07
  • Tente o código abaixo, na linha "SELECT ... " coloque o caminho LDAP de seu domínio.

     

    salve o código num arquivo VBS e execute-o  em umprompt de comando utilizando o comando CSCRIPT arquivo.vbs se quiser jogar para um txt adicione  >C:\ARQUIVO.TXT , acho que já ajuda.

    '************************

    On Error Resume Next

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _
            "SELECT distinguishedName FROM 'LDAP://DC=zi,DC=if,DC=atcsg,DC=net' WHERE objectCategory='Computer'"
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF

     strPath = objRecordSet.Fields("distinguishedName").Value
      
      x=("LDAP://"&strpath)
      Set objComp = GetObject(x)
      
      strComputer = (objcomp.cn)
      
      Set colGroups = GetObject("WinNT://" & strComputer & "")
      colGroups.Filter = Array("group")
      
      wscript.echo (objcomp.cn)
      
      
      For each objGroup In colGroups
            
          if Cstr(objGroup.Name) = "Administrators" then
           Wscript.Echo objGroup.Name
           
           For Each objUser in objGroup.Members
             
                Wscript.Echo vbTab & objUser.Name
           Next
           
          End if
      Next

      


     objRecordSet.MoveNext
    Loop

    segunda-feira, 28 de agosto de 2006 17:50
  • Tentei utilizar o script e me apresenta o seguinte erro:

     

     

    Microsoft (R) Windows Script Host Versão 5.6
    Copyright (C) 1996-2001 Microsoft Corporation. Todos os direitos reservados.

    Erro de entrada: Não existe uma extensão de arquivo em "C:\Documents".

    segunda-feira, 13 de novembro de 2006 16:59
  • Faltou aspas aí em algum lugar...


    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    segunda-feira, 13 de novembro de 2006 21:36
    Moderador
  • Bom dia. Pessoal o script funciona legal, mas gostaria de saber como fçao para jogar a saida dele para um arquivo e não precisar de ficar dando ok para cada maquina!!! Obrigado.

     

     

    segunda-feira, 28 de maio de 2007 13:01
  • Oi Bruno,

     

    Muito show esse script, mas não consegui executar com sucesso até o fim. Acrescentei somente, na linha do SELECT, a opção de OU restringindo o teste que gostaria de fazer no meu domínio.

    O script roda mas somente chega a mostrar um pop-up com o nome da máquina que se encontra na OU mas não chega a mostrar a linha "Wscript.Echo objGroup.Name". Será que tem algo na minha rede ou é algo no script?

     

    quarta-feira, 19 de novembro de 2008 00:49
  • Boa tarde,

     

    Da uma olhada neste script aqui:

     

    http://forums.microsoft.com:80/TechNet-BR/ShowPost.aspx?PostID=4042432&SiteID=29

     

    Faz a mesma coisa mas sem precisar de dar OK para as máquinas.

     

    PS: Só tem um defeito que ainda estou tentando corrigir, se a máquina esta desligada ele cópia as chaves da máquina anterior, porém é fácil de fazer analise e ver onde isto aconteceu.

     

    Você só tem que gerar um lista com as máquinas de seu AD. Faze rum export por exemplo.

     

    Abraços.

     

    quinta-feira, 20 de novembro de 2008 18:24
  • Blz, amigo,

     

    Fiquei pensando na solução e descobri que o problema é na minha rede. Primeiramente dou uma dica que você poderá customizar na linha do SELECT, restringindo a varredura apenas em uma OU. Ex:  "SELECT distinguishedName FROM 'LDAP://OU=TESTE,DC=zi,DC=if,DC=atcsg,DC=net' WHERE objectCategory='Computer'". Após isso percebi que se o serviço SERVIDOR nos serviços do Windows deve estar startado. Obrigado pela atenção e até a próxima.

     

    sexta-feira, 21 de novembro de 2008 01:03
  • Boa tarde,

     

    Da uma olhada neste script aqui:

     

    http://forums.microsoft.com:80/TechNet-BR/ShowPost.aspx?PostID=4042432&SiteID=29

     

    Faz a mesma coisa mas sem precisar de dar OK para as máquinas.

     

    PS: Só tem um defeito que ainda estou tentando corrigir, se a máquina esta desligada ele cópia as chaves da máquina anterior, porém é fácil de fazer analise e ver onde isto aconteceu.

     

    Você só tem que gerar um lista com as máquinas de seu AD. Faze rum export por exemplo.

     

    Abraços.

     

    Preciso de fazer um levantamento dos administradores locais das máquinas, porém os clientes são Windows 7, servidor  2008.

    Obrigado!

    Marcelo GAzeta

     

    Marcelo Gazeta Alves

    terça-feira, 3 de março de 2015 16:41