Export your mouse settings from the Registry at
HKEY_CURRENT_USER\Control Panel\Mouse
Edit the .reg file and use Find and Replace to change HKEY_CURRENT_USER\
to HKEY_USERS\.DEFAULT\
HKEY_USERS\.DEFAULT\Control Panel\Mouse
Run the .reg file to import the new settings.
Warning! Following is going to modify/replace some system files and modifying registry keys at HKLM. You will not able to use some builtin accessibility options.I think that some virus scanners do not like this (modifying system files this way) and may require excluding modified files from scan. Thats not all... we are replacing files that will run under mighty SYSTEM account, so your fresh scripts will have same permissions.
[optional] If you know how to behave as TrustedInstaller
while setting this up there is no need to change permissions.
[info] CWD
= something
Tells you Current Working Directory.
Okay, last warning is that there is possibility that small typo will lock you out of your system and you may need to take control back while being offline [in terms of running os].
First, take advantage of running programs at logon screen
One quick way to achieve this is to replace %windir%\System32\Utilman.exe
with your own program, in this case it is replaced with application that writes list of visible / hidden users to registry.
CWD
= anything you want
You need program that toggles visible users, one easy way to write simple programs is to use notepad
and any batch compiler. (linked compiler has built in editor)
If using this method you will need some code to place inside too:
@echo off
IF EXIST "%SYSTEMROOT%\System32\SwitchVisibleUsers\hidden.state" (
del %SYSTEMROOT%\System32\SwitchVisibleUsers\hidden.state
regedit /s "%SYSTEMROOT%\System32\SwitchVisibleUsers\displayusers.reg"
) ELSE (
echo "1" > "%SYSTEMROOT%\System32\SwitchVisibleUsers\hidden.state"
regedit /s "%SYSTEMROOT%\System32\SwitchVisibleUsers\hideusers.reg"
)
wmic process where (name="LogonUI.exe") delete
Here is explanation what above script does:
Let's break above code down, do not copypaste this!
First line checks if status file exists, filename quoted:
1| IF EXIST "%SYSTEMROOT%\System32\SwitchVisibleUsers\hidden.state" (
If file exists then delete file that we cheked:
2| del %SYSTEMROOT%\System32\SwitchVisibleUsers\hidden.state
And write displayusers.reg contents to registry:
3| regedit /s "%SYSTEMROOT%\System32\SwitchVisibleUsers\displayusers.reg"
4| ) ELSE (
If status file does not exist then create it:
5| echo "1" > "%SYSTEMROOT%\System32\SwitchVisibleUsers\hidden.state"
And write contents of hideusers.reg to registry:
6| regedit /s "%SYSTEMROOT%\System32\SwitchVisibleUsers\hideusers.reg"
7| )
Registry values written, kill LogonUI.exe to reload (LogonUI restarts)
8| wmic process where (name="LogonUI.exe") delete
Replace system files
After that save your file as Utilman.cmd
and compile it so it will be Utilman.exe
, we are good if you have compiled your batch and your .exe
file is working. Copy your fresh utilman.exe
to clipboard.
CWD
= %SYSTEMROOT%\System32\
Now, replace microsoft's utilman.exe
with your own fresh utilman.exe
. You may need to take ownership of files and set permissions to allow modifying files at system32.
Define special users (registry keys/values to change):
Create new directory SwitchVisibleUsers
.
CWD
= %SYSTEMROOT%\System32\SwitchVisibleUsers\
Create two files named hideusers.reg
and displayusers.reg
. These two files defines which users to hide/display at logon screen, edit contents to correspond your configuration.
Contents of hideusers.reg
:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]
"Administrator"=dword:00000000
"ChuckNorris"=dword:00000000
"JonSkeet"=dword:00000000
And contents of displayusers.reg
:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]
"Administrator"=dword:00000001
"ChuckNorris"=dword:00000001
"JonSkeet"=dword:00000001
Now, you're done. How to test it?
Just logout or switch user if fast user switching is enabled and when you are at logon screen try to use accessibility options (small button at left bottom corner). If Administrator, Chuck Norris or Jon Skeet is nearby, they will appear and disappear while you are clicking this magic button.
Best Answer
You are looking to writing a specialized Credential Provider. I an not going to write one for you, not even for 5000 reps, but I can point you in the right direction.
The article Create Custom Login Experiences With Credential Providers For Windows Vista explains the basics of Microsoft's move away from the earlier GINA model. It develops a sample which demonstrates the new features via a hybrid credential provider that allows a user name, password, and domain name to be stored on a smart card, so that upon insertion of the card, the user is automatically logged on.
Microsoft also provides for download Credential Provider Samples, which include an overview document describing how to build them.
If you do intend to develop your Credential Provider, I suggest strongly to debug it inside a virtual machine, for obvious reasons.