We described the registry entry for preserving the state of NUM LOCK when a user logs off in tip 0023.

When a user logs off and then logs on again, NUM LOCK may be set to off.

If you leave the InitialKeyboardIndicators as 0, we can use Sendkeys to set NUM LOCK.

Create a numlock.vbs which contains:

set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "\{NUMLOCK\}"

You can put the script in the users Startup folder or
in the All Users Startup folder (\Documents and Settings\All Users\Start Menu\Programs\Startup).

You can also run the script using Group Policy.

For a local logon script, copy the numlock.vbs file to %SystemRoot%\System32\GroupPolicy\\[User or Machine\]\Scripts\Logon.

For a domain logon script, copy it to %SysVolFolder%\Sysvol\Sysvol\Domainname\Scripts.

After copying the script:

1. Start / Run / mmc / OK.

2. On the Console menu, Press Add/Remove Snap-in.

3. Press Add / Group Policy / Add and select the appropriate GPO.

4. Press Finish / Close / OK.

5. Navigate to User Configuration\Windows Settings\Scripts (Logon/Logoff)\Logon or
    Computer Configuration\Windows Settings\Scripts (Logon/Logoff).

6. Double-click Logon.

7. Press Add / Browse / Numlock.vbs.

8. Select Numlock.vbs and press Open / OK.

9. Press OK and Console / Exit.