Usuário com melhor resposta
Descobrir os administradores locais de cada maquina

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.
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 = objConnectionobjCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREEobjCommand.CommandText = _
"SELECT distinguishedName FROM 'LDAP://DC=zi,DC=if,DC=atcsg,DC=net' WHERE objectCategory='Computer'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirstDo 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
Todas as 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 = objConnectionobjCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREEobjCommand.CommandText = _
"SELECT distinguishedName FROM 'LDAP://DC=zi,DC=if,DC=atcsg,DC=net' WHERE objectCategory='Computer'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirstDo 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 -
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".
-
-
-
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?
-
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.
-
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.
-
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