Como obter a data de expiração da senha usando o provedor ADSI do LDAP

O suporte para o Windows XP terminou

A Microsoft terminou o suporte para o Windows XP em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

O suporte para o Windows Server 2003 termina em 14 de julho de 2015.

A Microsoft terminou o suporte para o Windows Server 2003 em 14 de julho de 2015. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 323750
Sumário
Este artigo contém código de exemplo que demonstra como usar o provedor ADSI do LDAP para obter a data de expiração de senha de um usuário do Active Directory.
Mais Informações
Este artigo contém código de exemplo para os seguintes programas:
  • Visual Basic
  • VBScript

Código de exemplo do Visual Basic

Para usar o seguinte código de exemplo do Visual Basic, você deve adicionar Active DS Type Library a referência do projeto.
        '========================================    ' First, get the domain policy.    '========================================    Dim oDomain As IADsContainer    Dim oUser As IADsUser    Dim maxPwdAge As LargeInteger        '========================================    ' Declaring numDays as Currency, due to a    ' large number calculation.    '========================================    Dim numDays As Currency        strDomainDN = "YOURDOMAIN"    strUserDN = strDomainDN & "/CN=John Doe,CN=Users,DC=YOURDOMAIN,DC=COM"        Set oDomain = GetObject("LDAP://" & strDomainDN)    Set maxPwdAge = oDomain.Get("maxPwdAge")    '========================================    ' Calculate the number of days that are    ' held in this value.    '========================================    numDays = ((maxPwdAge.HighPart * 2 ^ 32) + _                maxPwdAge.LowPart) / -864000000000@    Debug.Print "Maximum Password Age: " & numDays        '========================================    ' Determine the last time that the user    ' changed his or her password.    '========================================    Set oUser = GetObject("LDAP://" & strUserDN)    '========================================    ' Add the number of days to the last time    ' the password was set.    '========================================    whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)        Debug.Print "Password Last Changed: " & oUser.PasswordLastChanged    Debug.Print "Password Expires On: " & whenPasswordExpires    '========================================    ' Clean up.    '========================================    Set oUser = Nothing    Set maxPwdAge = Nothing    Set oDomain = Nothing				

Código de exemplo do VBScript

Para usar o exemplo a seguir que você código, você deve copiar o código para um arquivo de texto com uma extensão de arquivo .vbs .
    '========================================    ' First, get the domain policy.    '========================================    Dim oDomain    Dim oUser    Dim maxPwdAge    Dim numDays       strDomainDN = "YOURDOMAIN"    strUserDN = strDomainDN & "/CN=John Doe,CN=Users,DC=YOURDOMAIN,DC=COM"        Set oDomain = GetObject("LDAP://" & strDomainDN)    Set maxPwdAge = oDomain.Get("maxPwdAge")    '========================================    ' Calculate the number of days that are    ' held in this value.    '========================================    numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + _                    maxPwdAge.LowPart) / CCur(-864000000000)    WScript.Echo "Maximum Password Age: " & numDays        '========================================    ' Determine the last time that the user    ' changed his or her password.    '========================================    Set oUser = GetObject("LDAP://" & strUserDN)    '========================================    ' Add the number of days to the last time    ' the password was set.    '========================================    whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)        WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged    WScript.Echo "Password Expires On: " & whenPasswordExpires    '========================================    ' Clean up.    '========================================    Set oUser = Nothing    Set maxPwdAge = Nothing    Set oDomain = Nothing    WScript.Echo "Done"				
Referências
Para obter mais informações sobre a documentação de referência do Active Directory Service Interfaces (ADSI), visite o seguinte site da MSDN: Para obter mais informações sobre como determinar a última vez que a senha foi alterada, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
192949Como encontrar a data da senha alterada pela última vez usando a ADSI

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 323750 - Última Revisão: 05/19/2005 22:22:51 - Revisão: 4.2

Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Server, Microsoft Windows 2000 Service Pack 3, Microsoft Windows 2000 Server SP2, Microsoft Windows 2000 Server SP1, Microsoft Windows XP Professional, Microsoft Active Directory Service Interfaces 2.5, Microsoft Active Directory Service Interfaces 2.5

  • kbmt kbdswadsi2003swept kbhowto KB323750 KbMtpt
Comentários