Get last user logon 90 days

Hi, I’d like to get all users in AD that haven’t logged on in the last 90 days. I have a script but it always throws mr an error and can’t get the results. Could some help where my mistake is? Many thanks to the community :slight_smile:

Function to convert the last logon timestamp to a readable format

function Convert-LastLogon
{
param (
[Parameter(Mandatory = $true)]
[int64]$lastLogonTimestamp
)
return [DateTime]::FromFileTime($lastLogonTimestamp)
}

Set the output file path

$outputFilePath = “C:\temp\lastlogon90days.csv”

Get all domain controllers in the current domain

try
{
$domainControllers = Get-ADDomainController -Filter *
}
catch
{
Write-Host “Error occurred while getting domain controllers: $_” -ForegroundColor Red
exit
}

Initialize an empty array to store the results

$results = @()

Iterate through each domain controller

foreach ($dc in $domainControllers)
{
# Query for enabled users that have not logged in for 90 days on the current domain controller
try
{
$users = Get-ADUser -Filter { Enabled -eq $true -and LastLogonTimeStamp -lt $((Get-Date).AddDays(-90).ToFileTime()) } -Server VM-PRD-DC-W04
}
catch
{
Write-Host “Error occurred while querying users on $($dc): $_” -ForegroundColor Yellow
continue
}

# Iterate through each user
foreach ($user in $users)
{
	# Get the last logon timestamp of the user
	$lastLogon = Convert-LastLogon -lastLogonTimestamp $user.LastLogonTimestamp
	
	# Add the user details to the results array
	$results += [PSCustomObject]@{
		"Username" = $user.SamAccountName
		"LastLogonDate" = $lastLogon
		"DomainController" = $dc.DNSHostName
	}
}

}

Export the results to a CSV file

$results | Export-Csv -Path $outputFilePath -NoTypeInformation

The error I get:
Error occurred while querying users on MYDCNAME-W04: Cannot process argument because the value of argument “path” is not valid. Change the value of the “path” argument and run the operation again.

Hey Sky!

Welcome! When you have a moment, please go back and format your code: Formatting your code: How to format code on PowerShell.org

It seems like some of it formatted and some of it isn’t. Sometimes, funky things can happen if all the code isn’t formatted as code. Much appreciated!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.