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