This script generates Last Logged-On User / DefaultUserName information from an input file (input.csv) which contains computer names.
Output file
UserInfo.csv – contains computer names and corresponding SamAccountNames
FailedCompuers.csv – Script verifies admin$ access. If the access fails, it will be added to the FailedComptuers.csv file.
This script also displays the output on the screen.
More info: http://portal.sivarajan.com/2010/07/last-logged-on-user-defaultusername.html
Reference: www.sivarajan.com
http://www.sivarajan.com/scripts.html
#
# Identify Last Logged On User - Santhosh Sivarajan
#
# www.sivarajan.com
#
Cls
$UserInfoFile = New-Item -type file -force "C:\My Data\2010\Scripts\UserInfo.csv"
$FailedComputers_File = New-Item -type file -force "C:\My Data\2010\Scripts\FailedCompuers.csv"
"samAccountName,ComputerName" | Out-File $UserInfoFile -encoding ASCII
"ComputerName" | Out-File $FailedComputers_File -encoding ASCII
write-host -fore Blue "`t---------------------------------------------"
write-host -fore Blue "`tComputer Name`t`tSamAccountName/Status"
write-host -fore Blue "`t---------------------------------------------"
Import-CSV "C:\My Data\2010\Scripts\input.csv" | % {
$Computer = $_.ComputerName
$adminpath = Test-Path \\$Computer\admin$
If ($adminpath -eq "TRUE")
{
$ObjReg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $Computer)
$ObjRegKey = $ObjReg.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon")
$UserName = $ObjRegKey.GetValue("DefaultUserName")
write-host -fore Green `t$Computer`t`t"-->`t`t"$UserName
write-host -fore Blue "`t---------------------------------------------"
"$UserName,$Computer" | Out-File $UserInfoFile -encoding ASCII -append
}
else
{
write-host -fore Red `t$Computer`t`t`t"-->`t`tCan't Access"
write-host -fore Blue "`t---------------------------------------------"
"$Computer" | Out-File $FailedComputers_File -encoding ASCII -append
}
}
#
# Identify Last Logged On User - Santhosh Sivarajan
#
# www.sivarajan.com
#
Cls
$UserInfoFile = New-Item -type file -force "C:\My Data\2010\Scripts\UserInfo.csv"
$FailedComputers_File = New-Item -type file -force "C:\My Data\2010\Scripts\FailedCompuers.csv"
"samAccountName,ComputerName" | Out-File $UserInfoFile -encoding ASCII
"ComputerName" | Out-File $FailedComputers_File -encoding ASCII
write-host -fore Blue "`t---------------------------------------------"
write-host -fore Blue "`tComputer Name`t`tSamAccountName/Status"
write-host -fore Blue "`t---------------------------------------------"
Import-CSV "C:\My Data\2010\Scripts\input.csv" | % {
$Computer = $_.ComputerName
$adminpath = Test-Path \\$Computer\admin$
If ($adminpath -eq "TRUE")
{
$ObjReg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $Computer)
$ObjRegKey = $ObjReg.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon")
$UserName = $ObjRegKey.GetValue("DefaultUserName")
write-host -fore Green `t$Computer`t`t"-->`t`t"$UserName
write-host -fore Blue "`t---------------------------------------------"
"$UserName,$Computer" | Out-File $UserInfoFile -encoding ASCII -append
}
else
{
write-host -fore Red `t$Computer`t`t`t"-->`t`tCan't Access"
write-host -fore Blue "`t---------------------------------------------"
"$Computer" | Out-File $FailedComputers_File -encoding ASCII -append
}
}