none
Listar expiração de conta RRS feed

  • Pergunta

  • Olá pessal,

     

    Fiz esse script para listar a data de expiração da conta do usuário, mas está dando erro para mostrar o campo de expiração... O que pode estar errado.

     

     

    Set objConnection = CreateObject("ADODB.Connection")
    objConnection.Open "Provider=ADsDSOObject;"
    Set objCommand = CreateObject("ADODB.Command")
    objCommand.ActiveConnection = objConnection
    dim XLOGIN

    XLOGIN=wScript.Arguments.Item(0)
     
    set objFso=CreateObject("Scripting.FileSystemObject")

     objcommand.CommandText = _
          "SELECT adspath,displayName,cn,givenName,sn, SAMAccountName FROM 'LDAP://domaincontroler,DC=dominio' WHERE objectCategory='User' and samaccountname='"&XLOGIN&"'"

    Set objRecordSet = objCommand.Execute

    wscript.echo "Usuário     :" & objRecordSet.Fields("samaccountname")
    wscript.echo "CN          :" & objRecordSet.Fields("cn")
    wscript.echo "displayName :" & objRecordSet.Fields("displayName")
    Wscript.echo "Expiração   :" & objRecordSet.Fields("AccountExpires")


     

    terça-feira, 28 de agosto de 2007 13:25

Respostas

  •  

    Aqui só pra constar, script pra trazer a expiração de todos os usuários do domínio....

     


    Set rootDSE=GetObject("LDAP://RootDSE")
    domainContainer = rootDSE.Get("defaultNamingContext")
    Set domainObject = GetObject("LDAP://" & domainContainer)
    Set fs = CreateObject ("Scripting.FileSystemObject")
    Set userFile = fs.OpenTextFile ("c:\usersExpire.csv",8,True)
    
    For Each obj in domainObject
    	if instr(lcase(obj.ADsPath),"system")=0 then
    		select case(obj.Class)
    			case "user"
    				GetUsers(obj.ADsPath)
    			case "organizationalUnit"
    				GetOu(obj.ADsPath)
    			case "container"
    				GetOu(obj.ADsPath)
    		end select
    	end if
    Next
    
    sub GetUsers(path)
    	set objUser = GetObject(path)
    	On Error Resume Next
    	
    	dtmAccountExpiration = objUser.AccountExpirationDate 
    	
    	If Err.Number = -2147467259 Or dtmAccountExpiration = "1/1/1970" Then
    		texto = "Usuário: " & objUser.displayName & " - Sem data de expiração marcada"
    	Else
    		texto = "Usuário: " & objUser.displayName & " - Expira em: " & objUser.AccountExpirationDate
    	End If
    	
    	userFile.WriteLine texto
    	
    	err.clear
    end sub
    
    sub GetOu(path)
    	set oOu = GetObject(path)
    	for each user in oOu
    		select case(user.Class)
    			case "user"
    				GetUsers(user.ADsPath)
    			case "organizationalUnit"
    				GetOu(user.ADsPath)
    			case "container"
    				GetOu(obj.ADsPath)
    		end select
    	next
    end sub
    
    msgbox "terminou"
    wscript.quit

     

     

     

    =D

     

    Se ajudar, não esqueça de classificar.....

    o.0


    terça-feira, 28 de agosto de 2007 19:56
    Moderador

Todas as Respostas

  •  

    Luiz, tente com esse script aki....

     

    Mude o cn=users, se vc tiver os usuários em alguma OU.... então exemplo.. OUGerentes,  ou=ougerentes

     

    Code Snippet
    On Error Resume Next
    Set rootDSE=GetObject("LDAP://RootDSE")
    domainContainer = rootDSE.Get("defaultNamingContext")
    xlogin = wscript.arguments.item(0)
    Set objUser = GetObject("
    LDAP://cn="&xlogin&",cn=users,"&domainContainer)
    dtmAccountExpiration = objUser.AccountExpirationDate 
     
    If Err.Number = -2147467259 Or dtmAccountExpiration = "1/1/1970" Then
     wscript.echo "Usuário: " & objUser.UserName
     wscript.Echo "Sem data de expiração marcada"
    Else
     wscript.echo "Usuário: " & objUser.UserName
     wscript.Echo "Expira em: " & objUser.AccountExpirationDate
    End If

     

     

    Testa e diz ai se funfou...

     

    E se ajudar, naõ esqueça de classificar....

    o.0 
    terça-feira, 28 de agosto de 2007 19:09
    Moderador
  •  

     

    Aqui só pra constar, script pra trazer a expiração de todos os usuários do domínio....

     

    Code Snippet

    Set rootDSE=GetObject("LDAP://RootDSE")
    domainContainer = rootDSE.Get("defaultNamingContext")
    Set domainObject = GetObject("
    LDAP://"&domainContainer")
    Set fs = CreateObject ("Scripting.FileSystemObject")
    Set userFile = fs.OpenTextFile ("c:\usersExpire.csv",8,True)

    For Each obj in domainObject
     if instr(lcase(obj.ADsPath),"system")=0 then
     select case(obj.Class)
      case "user"
       GetUsers(obj.ADsPath)
      case "organizationalUnit"
       GetOu(obj.ADsPath)
      case "container"
       GetOu(obj.ADsPath)
     end select
     end if
    Next

    sub GetUsers(path)
     set objUser = GetObject(path)
     On Error Resume Next

     dtmAccountExpiration = objUser.AccountExpirationDate
       
     If Err.Number = -2147467259 Or dtmAccountExpiration = "1/1/1970" Then
      texto = "Usuário: " & objUser.displayName & " - Sem data de expiração marcada"
     Else
      texto = "Usuário: " & objUser.displayName & " - Expira em: " & objUser.AccountExpirationDate
     End If

    userFile.WriteLine texto

    err.clear
    end sub

    sub GetOu(path)
     set oOu = GetObject(path)
     for each user in oOu
      select case(user.Class)
       case "user"
        GetUsers(user.ADsPath)
       case "organizationalUnit"
        GetOu(user.ADsPath)
       case "container"
        GetOu(obj.ADsPath)
      end select
     next
    end sub

    msgbox "terminou"
    wscript.quit

     

     

     

    =D

     

    Se ajudar, não esqueça de classificar.....

    o.0

    terça-feira, 28 de agosto de 2007 19:55
    Moderador
  •  

    Aqui só pra constar, script pra trazer a expiração de todos os usuários do domínio....

     


    Set rootDSE=GetObject("LDAP://RootDSE")
    domainContainer = rootDSE.Get("defaultNamingContext")
    Set domainObject = GetObject("LDAP://" & domainContainer)
    Set fs = CreateObject ("Scripting.FileSystemObject")
    Set userFile = fs.OpenTextFile ("c:\usersExpire.csv",8,True)
    
    For Each obj in domainObject
    	if instr(lcase(obj.ADsPath),"system")=0 then
    		select case(obj.Class)
    			case "user"
    				GetUsers(obj.ADsPath)
    			case "organizationalUnit"
    				GetOu(obj.ADsPath)
    			case "container"
    				GetOu(obj.ADsPath)
    		end select
    	end if
    Next
    
    sub GetUsers(path)
    	set objUser = GetObject(path)
    	On Error Resume Next
    	
    	dtmAccountExpiration = objUser.AccountExpirationDate 
    	
    	If Err.Number = -2147467259 Or dtmAccountExpiration = "1/1/1970" Then
    		texto = "Usuário: " & objUser.displayName & " - Sem data de expiração marcada"
    	Else
    		texto = "Usuário: " & objUser.displayName & " - Expira em: " & objUser.AccountExpirationDate
    	End If
    	
    	userFile.WriteLine texto
    	
    	err.clear
    end sub
    
    sub GetOu(path)
    	set oOu = GetObject(path)
    	for each user in oOu
    		select case(user.Class)
    			case "user"
    				GetUsers(user.ADsPath)
    			case "organizationalUnit"
    				GetOu(user.ADsPath)
    			case "container"
    				GetOu(obj.ADsPath)
    		end select
    	next
    end sub
    
    msgbox "terminou"
    wscript.quit

     

     

     

    =D

     

    Se ajudar, não esqueça de classificar.....

    o.0


    terça-feira, 28 de agosto de 2007 19:56
    Moderador
  • Tem um erro...

    Nessa linha:

    Set domainObject = GetObject("LDAP://"&domainContainer")

    Tem que tirar um "

    Set domainObject = GetObject("LDAP://"&domainContainer)

     


    Thomas Edson Mattos Roeder
    terça-feira, 15 de fevereiro de 2011 10:31