Powershell Script to Get “lastLogon Timestamp” for Specific OU and Export to CSV File


Learn how to get lastlogon timestamp for specific OU and export to CSV by using Powershell script.

A PowerShell solution using the AD module cmdlet:

Get-ADUser -Filter * -SearchBase "ou=users,dc=contoso,dc=local" -ResultPageSize 0 -Prop CN,lastLogonTimestamp | Select CN,lastLogonTimestamp | Export-CSV -NoType last.csv


If you want get a date:

Get-ADUser -Filter * -SearchBase "ou=users,dc=contoso,dc=local" -ResultPageSize 0 -Prop CN,lastLogonTimestamp | Select CN,@{n="lastLogonDate";e={[datetime]::FromFileTime($_.lastLogonTimestamp)}} | Export-CSV -NoType last.csv


Below Command works if you want to leverage Quest’s cmdlets:

$OutFile = 'C:\MyExportFile.csv' # your output file$MyOU = 'OU=A,OU=B,OU=C,DC=ChildDomain,DC=ParentDomain,DC=com' # DNGet-QADUser -Searchroot $MyOU | foreach {Add-Content -path $OutFile "$($_.SamAccountName),$($_.LastLogonTimestamp)"}


This will do the same without any extra cmdlets:

$as = [adsisearcher]"(&(objectClass=person)(objectCategory=user))" $as.PropertiesToLoad.Add('cn')$as.PropertiesToLoad.Add('lastlogonTimeStamp')$as.PageSize = 200$as.FindAll() | ForEach-Object {    $props = @{ 'CN' = ($_.properties.item('cn') | Out-String).Trim()                'LastLogonTimeStamp' = ([datetime]::FromFiletime(($_.properties.item('lastlogonTimeStamp') | Out-String).Trim())) }    New-Object psObject -Property $props    } | Export-Csv 'Lastlogontimestamp.csv' -NoTypeInformation


Leave a Comment

10 + one =