Dear All,
Is there any Power Shell script to generate last logon time stamp for a list of users. I got the below script and it is working fine however I sound not export to csv format. Any one can help to modify the script adding export-csv to the below script
# Get a list of every domain controller's name
$dcNames = Get-ADDomainController -Filter * |
Select-Object -ExpandProperty Name |
Sort-Object
# Get list of users from Text File
$users = Get-Content "C:\AD-Scripts\users.txt" | Get-ADUser -Properties *
# Hashtable used for splatting for Get-ADUser in loop
$params = @{
"Properties" = "lastLogon"
}
foreach ( $user in $users ) {
# Set LDAPFilter to find specific user
$params.LDAPFilter = "(sAMAccountName=$($user.SamAccountName))"
# Clear variables
$latestLogonFT = $latestLogonServer = $latestLogon = $null
# Iterate every DC name
foreach ( $dcName in $dcNames ) {
# Query specific DC
$params.Server = $dcName
# Get lastLogon attribute (a file time)
$lastLogonFT = Get-ADUser @params |
Select-Object -ExpandProperty lastLogon
# Remember most recent file time and DC name
if ( $lastLogonFT -and ($lastLogonFT -gt $latestLogonFT) ) {
$latestLogonFT = $lastLogonFT
$latestLogonServer = $dcName
}
}
if ( $latestLogonFT -and ($latestLogonFT -gt 0) ) {
# If user ever logged on, get DateTime from file time
$latestLogon = [DateTime]::FromFileTime($latestLogonFT)
}
else {
# User never logged on
$latestLogon = $latestLogonServer = $null
}
# Output user
$user | Select-Object `
SamAccountName,
@{Name = "LatestLogon"; Expression = {$latestLogon}},
@{Name = "LatestLogonServer"; Expression = {$latestLogonServer}}
}