none
PowerShell и get-aduser RRS feed

  • Вопрос

  • Через PowerShell не могу получить значения атрибутов LastLogon и LastLogonTimeStamp пользователей AD.

    get-aduser -filter {cn -like "*"} -properties lastlogontimestamp, lastlogon | sort lastlogontimestamp|format-table samaccountname, name, lastlogontimestamp, @{label="lastlogon"; expression={[datetime]::fromfiletime($_.lastlogontimestamp)}}

    Этот запрос должен показать таблицу пользователей со временем последнего входа. У большей части пользователей время последнего входа "01.01.1601 5:00:00" (т.е. атрибут пустой). Тем временем, если открыть оснастку "Пользователи и компьютеры AD" значение этого атрибута для пользователей соответствует времени входа. 

    Подскажите, что не так?



    22 марта 2016 г. 5:55

Ответы

  • lastlogontimestamp  - пусто, то пользователь никогда не логинился в систему.

    lastlogon - заполняется на конкретном DC

    Попробовать указать параметр get-aduser -filter {cn -like "*"} -Server DC .... , где точно есть заполнены эти параметры. Возможно проблемы с репликацией.

    Данные одинаковые?

    $adSearcher = [adsisearcher]""
    $adSearcher.Filter = '(&(objectClass=user)(objectCategory=person))'
    $adSearcher.PageSize = 1000
    $adSearcher.PropertiesToLoad.Add('LastLogon')
    $adSearcher.PropertiesToLoad.Add('SamAccountName')
    $adSearcher.PropertiesToLoad.Add('lastlogontimestamp')
    
    $Root = [ADSI]"LDAP://RootDSE"
    $Root.rootDomainNamingContext
    
    $adSearcher.SearchRoot = 'LDAP://'+$Root.rootDomainNamingContext
    $adSearcher.FindAll() | select @{n='Sam'; e={ $_.properties.samaccountname}}, @{n='LastLogon'; e={[DateTime]::FromFileTime($_.properties.lastlogon[0])}},@{n='LastLogonTimeStamp'; e={[DateTime]::FromFileTime($_.properties.lastlogontimestamp[0])}}  
    
    

    • Помечено в качестве ответа Melnikov V 22 марта 2016 г. 8:03
    22 марта 2016 г. 6:16
    Отвечающий

Все ответы

  • lastlogontimestamp  - пусто, то пользователь никогда не логинился в систему.

    lastlogon - заполняется на конкретном DC

    Попробовать указать параметр get-aduser -filter {cn -like "*"} -Server DC .... , где точно есть заполнены эти параметры. Возможно проблемы с репликацией.

    Данные одинаковые?

    $adSearcher = [adsisearcher]""
    $adSearcher.Filter = '(&(objectClass=user)(objectCategory=person))'
    $adSearcher.PageSize = 1000
    $adSearcher.PropertiesToLoad.Add('LastLogon')
    $adSearcher.PropertiesToLoad.Add('SamAccountName')
    $adSearcher.PropertiesToLoad.Add('lastlogontimestamp')
    
    $Root = [ADSI]"LDAP://RootDSE"
    $Root.rootDomainNamingContext
    
    $adSearcher.SearchRoot = 'LDAP://'+$Root.rootDomainNamingContext
    $adSearcher.FindAll() | select @{n='Sam'; e={ $_.properties.samaccountname}}, @{n='LastLogon'; e={[DateTime]::FromFileTime($_.properties.lastlogon[0])}},@{n='LastLogonTimeStamp'; e={[DateTime]::FromFileTime($_.properties.lastlogontimestamp[0])}}  
    
    

    • Помечено в качестве ответа Melnikov V 22 марта 2016 г. 8:03
    22 марта 2016 г. 6:16
    Отвечающий
  • Действительно на другом DC эти атрибуты заполнены. После принудительной синхронизации на первом DC появились значения этих атрибутов.

    22 марта 2016 г. 8:12