ACTIVE DIRECTORY USUARIOS

ALEVALE 12/04/2012 14:36:34
#399702
Pessoal já quebrei a cabeça aqui e não encontrei nada do genero...

Alguém poderia dar uma luz, estou precisando pegar os usuários bloqueados e inativados do active directory alguém tem algo semelhante ?
KERPLUNK 12/04/2012 15:01:10
#399707
Veja este post que explica passo a passo como fazer...
ALEVALE 12/04/2012 15:38:42
#399711
Então eu já dei uma lida e sei fazer a conexão mas não sei aonde estou errando:

Dim RootDSE As New DirectoryServices.DirectoryEntry([Ô]LDAP://RootDSE[Ô])
Dim DomainDN As String = RootDSE.Properties([Ô]DefaultNamingContext[Ô]).Value
Dim ADEntry As New DirectoryServices.DirectoryEntry([Ô]LDAP://[Ô] & DomainDN)
Dim ADSearch As New System.DirectoryServices.DirectorySearcher(ADEntry)

Dim ADSearchResult As System.DirectoryServices.SearchResult
ADSearch.Filter = ([Ô](samAccountName=[Ô] & [Ô]INTERNET[Ô] & [Ô])[Ô])
ADSearch.SearchScope = System.DirectoryServices.SearchScope.Subtree
Dim UserFound As System.DirectoryServices.SearchResult = ADSearch.FindOne()
If Not IsNothing(UserFound) Then

Dim Attrib As String = [Ô]msDS-User-Account-Control-Computed[Ô]
Dim User As System.DirectoryServices.DirectoryEntry
User = UserFound.GetDirectoryEntry()
User.RefreshCache(New String() {Attrib})
Const UF_LOCKOUT As Integer = &H10
Const UF_DISABLE As Integer = &H2

Dim Flags As Integer = CInt(Fix(User.Properties(Attrib).Value))

If Convert.ToBoolean(Flags And UF_LOCKOUT) Then
Console.WriteLine([Ô]Account is locked out[Ô])
[ô]Unlock account
User.Properties([Ô]LockOutTime[Ô]).Value = 0
User.CommitChanges()
Console.WriteLine([Ô]Account is now unlocked[Ô])
Else
If Convert.ToBoolean(Flags And UF_DISABLE) Then
MsgBox([Ô]disable[Ô])
End If

Console.WriteLine([Ô]Account is not locked out[Ô])
End If
End If
KERPLUNK 12/04/2012 16:10:39
#399718
Bom, apresenta alguma mensagem de erro? Se apresenta, onde exatamente está o erro? Qual erro?
ALEVALE 12/04/2012 16:15:21
#399719
Esse é o problema ele não apresenta erro mas o estranho é que o valor do campo [Ô]flag[Ô] sempre está como branco, por isso não está funcionando.
KERPLUNK 12/04/2012 16:18:15
#399720
Pare a execução na linha:
Dim Flags As Integer = CInt(Fix(User.Properties(Attrib).Value))

Adicione [Ô]User.Properties[Ô] na watch window e veja as propriedades uma à uma. Dependendo da versão do AD elas têm nomes diferentes...
ALEVALE 13/04/2012 08:49:59
#399748
Achei esse código aqui e está funcionando 100%, porém gostaria de achar uma tabela/lista com todos os parametros do (userEntry.NativeObject.accountdisabled)

Dim strUser As String, intValue As Integer
Dim objLockout As Object = user.GetDirectoryEntry.Properties([Ô]lockoutTime[Ô]).Value
Dim result As SearchResult
Dim userEntry As DirectoryEntry

strUser = UCase(user.GetDirectoryEntry.Properties([Ô]sAMAccountName[Ô]).Value.ToString)
intValue = CType(user.GetDirectoryEntry.Properties([Ô]userAccountControl[Ô]).Value, Integer)

[ô]If GetLargeIntegerValue(objLockout) <> Nothing Then
[ô]intLargeInteger = GetLargeIntegerValue(objLockout)
[ô]End If

srch.Filter = [Ô](SAMAccountName=[Ô] + strUser + [Ô])[Ô]
srch.CacheResults = False
result = srch.FindOne
userEntry = result.GetDirectoryEntry
With userEntry
If userEntry.NativeObject.accountdisabled = True Then
fndDadosUsuarios(strUser, [Ô]BLOQUEADO[Ô])
intTotalContasBloqueadas += 1
End If
End With
ALEVALE 13/04/2012 09:38:45
#399757
Resolvido !
(userEntry.NativeObject.IsAccountLocked)
Tópico encerrado , respostas não são mais permitidas