none
Search for All Users by Password Change Date RRS feed

  • Вопрос

  • Взял исходник с http://gallery.technet.microsoft.com/ScriptCenter/en-us/99748fd4-98d3-4c7c-9292-7674d0c0adf5

    и получил учетки пользователей и учетки компьютеров (серверов), что меня удивило
    ведь мне нужно только учетки пользователей, как исключить учетки компьтеров (ведь в исходнике указано "Search for All Users by Password Change Date")

    On Error Resume Next
    
    Const ADS_SCOPE_SUBTREE = 2
    
    dtmpasswordDate = "10/1/2007"
    
    Set objShell = CreateObject("Wscript.Shell")
    lngTimeZoneBias = objShell.RegRead("HKLM\System\CurrentControlSet\Control\" _
      & "TimeZoneInformation\ActiveTimeBias")
    If UCase(TypeName(lngTimeZoneBias)) = "LONG" Then
      lngFinalBias = lngTimeZoneBias
    ElseIf UCase(TypeName(lngTimeZoneBias)) = "VARIANT()" Then
      lngFinalBias = 0
      For k = 0 To UBound(lngTimeZoneBias)
        lngFinalBias = lngFinalBias + (lngTimeZoneBias(k) * 256^k)
      Next
    End If
    
    dtmNewDate = DateAdd("n", lngFinalBias, dtmpasswordDate)
    lngSeconds = DateDiff("s", #1/1/1601#, dtmNewDate)
    strModifiedpasswordDate = CStr(lngSeconds) & "0000000"
    
    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 Name FROM 'LDAP://dc=fabrikam,dc=com' WHERE objectClass='user' "  & _
            "AND pwdLastSet>='" & strModifiedpasswordDate & "'" 
    Set objRecordSet = objCommand.Execute
    
    objRecordSet.MoveFirst
    Do Until objRecordSet.EOF
        Wscript.Echo objRecordSet.Fields("Name").Value
        objRecordSet.MoveNext
    Loop
    
    
    2 сентября 2009 г. 12:29

Ответы

  • В Select нужно добавить - objectCategory=person - тогда получите только пользователей.

    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
    • Помечено в качестве ответа Sergey O O 4 сентября 2009 г. 9:37
    2 сентября 2009 г. 18:07

Все ответы

  • В Select нужно добавить - objectCategory=person - тогда получите только пользователей.

    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
    • Помечено в качестве ответа Sergey O O 4 сентября 2009 г. 9:37
    2 сентября 2009 г. 18:07
  • В Select нужно добавить - objectCategory=person - тогда получите только пользователей.

    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
    Примерно так?

    objCommand.CommandText = _
        "SELECT Name FROM 'LDAP://dc=forum,dc=kiev,dc=ua,dc=alfabank' WHERE objectCategory='person'"  & _
            "AND pwdLastSet>='" & strModifiedpasswordDate & "'"
    4 сентября 2009 г. 6:27
  • Примерно так:

    objCommand.CommandText = _
        "SELECT Name FROM 'LDAP://dc=forum,dc=kiev,dc=ua,dc=alfabank' WHERE objectClass='user' AND objectCategory='person'"  & _
            "AND pwdLastSet>='" & strModifiedpasswordDate & "'"

    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
    4 сентября 2009 г. 7:21