The following VBS script will change the last user logged on user for a Windows 7 workstation.
This script has been used with Windows 7 workstation which is on an Active Directory domain.
Some background:
With Windows XP you used to be able to edit the registry information under ‘Winlogon’ (see: Using VBS to set the last user logged on (Windows XP))
However, Windows 7 no longer uses this registry information for the last logged on user, it now uses:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\LastLoggedonUser"
Additionally, this section of the registry requires elevated rights to modify, however if you run a VBS Script by double clicking it is not elevated.
To fix this, I was able to find a workaround to make the script run as an elevated user (see: Windows 7 – Run VBS script as elevated user (UAC))
Set Last Loggedon – Win7.vbs
To use the script, copy the following code into a new text file and save as ‘Set Last Loggedon – Win7.vbs’, run the script and enter in the required username. If it is a local uer account leave the domain blank.
Full Download: here
'--------------
'Start of UAC workaround code
If WScript.Arguments.length =0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", Chr(34) & _
WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else
'--------------
'Start of code
dim WSHShell
Set WSHShell = Wscript.CreateObject("WScript.Shell")
dim strRegKey
strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
strRegKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\"
StrUser = InputBox("Please enter in username," & vbCrLf & vbCrLf & "e.g. joe.local", "Set Last logged on", "UserName")
StrDomain = InputBox("Please enter in domain for logon," & vbCrLf & vbCrLf & "e.g. DOMAIN", "Set Logon Domain OR leave blank if a local user account")
If StrDomain = "" then
StrDomain = "."
Else
End If
wshShell.RegWrite strRegKey & "LastLoggedOnUser", StrDomain & "\" & StrUser, "REG_SZ"
WScript.Echo "Setup Completed. Please restart the computer to complete the process"
'--------------
'End of code
'--------------
'End of UAC workaround code
End If
