44

I want to configure Windows 7 to login automatically after the computer is switched on. That's not because I'm lazy and don't like typing passwords. That's because I want programs that are configured to run on startup run automatically.

But I don't want everyone to see my desktop, so I want my computer to remain locked. When I'm ready to work, I just type my password and don't have to wait until all startup programs run.

7
  • 1
    There probably isn't any way to do this. Have you considered hibernating instead of shutting down? Nov 1, 2011 at 2:58
  • Yes. I don't like hibernating because some programs lose their network connection and I have to restart them anyways.
    – utapyngo
    Nov 1, 2011 at 3:11
  • Which programs in detail? Have you tried to make the authors fix this problem?
    – Robert
    Nov 1, 2011 at 12:41
  • @eye:I don't get it. So because you have to restart these programs, you decide you need to restart your whole machine?? Am I missing something?
    – surfasb
    Nov 1, 2011 at 14:11
  • 2
    @surfasb: one more reason is that it is faster to turn off and turn on my computer that dump 8 gigabytes of RAM and then read it back.
    – utapyngo
    Nov 2, 2011 at 16:18

9 Answers 9

16

Take a look at this: Auto Logon and Lock

Auto Logon to Windows and immediately Lock Workstation (Safe Mode protected too)

Auto Logon & Lock is a small utility that enables your Windows PC to automatically logon to a user account on boot and then lock the desktop so a password is still required. Some of the reasons you might want to do this are: Faster boot time. The additional post-logon start up items are also started after Windows boots. Which means when you press the power button on your PC and come back after a few minutes, its completely booted up. No need to wait for additional software to load after you logon. Automatically resume downloads etc. when your PC reboots due to a power failure or crash. On XP you could do this by installing the application as a system service. In Vista and 7, Session 0 Isolation makes using a system service a pain, not to mention it's insecure. Just put your applications in the regular Windows Start Up folder and they will be launched after the auto logon. It password protects Safe Mode as well. Existing auto logon methods leave Safe Mode unprotected. It locks the desktop before Explorer is started. Other methods auto-lock using an autorun/start up entry which leave the PC logged on and unlocked until the autorun entries are executed (which can even take several minutes).

I haven't tried it myself, but it looks like it does what you want...

3
  • 1
    This looks more secure: instead of just putting itself to startup, it replaces the system shell (explorer) by itself.
    – utapyngo
    Nov 1, 2011 at 15:22
  • 3
    @utapyngo if it works by replacing explorer I'd strongly disagree on the security assessment. Explorer is a popular target for malware trying to break into a system; and I find it highly unlikely that a third party is able to put anywhere near as much effort into testing a replacement as MS is into testing the original. May 24, 2012 at 18:36
  • 6
    @Dan: actually it does not replace explorer.exe but uses a feature of Windows which allows changing a user's shell by changing a registry value.
    – utapyngo
    May 25, 2012 at 15:30
12

I managed to lock the PC immediately on startup while loading windows/startup items in the background. This works with Windows editions that has group policy editor.

Step 1: Open notepad, then paste this code:

WScript.CreateObject("WScript.Shell").Run("rundll32 user32.dll,LockWorkStation")

Step 2: Click File>Save As and in Save as type dropdown menu, choose All Files

Step 3: In the File Name field, enter LockWorkStation.vbs and save the file to C:\Users\YourUserName\Documents

Step 4: Hit WindowsKey+R, type regedit and press ENTER

Step 5: Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

Step 6: Right Click on a blank space and click New> DWORD (32-bit) Value and press ENTER

Step 7: Double click the newly created REG_DWORD file. In the Value name type RunLogonScriptSync and in the Value data type1 and then press ENTER

Step 8: Hit WindowsKey+R, type gpedit.msc and press ENTER

Step 9: Under Computer Configuration, go to Administrative Templates > System > Logon then Double Click Run these programs at user logon

Step 10: Click Enabled, and on Items to run at logon click Show...

Step 11: Type C:\Users\YourUserName\Documents\LockWorkStation.vbs and click OK repeatedly until all windows are closed

Step 12: Hit WindowsKey+R and type control.exe userpasswords2 then press ENTER

Step 13: Uncheck Users must enter a user name and password to use this computer. then click OK (type in your password if it prompts to do so)

Step : Restart your PC.

Now whenever you start your PC, the .vbs script will run first before anything else. This will ensure that your PC is locked before the desktop appears.

Note: You can change C:\Users\YourUserName\Documents\ to wherever you want to store your script.

4
  • 2
    Thanks, that's the ACTUAL solution over here. Didn't knew about RunLogonScriptSync which is actually the key to solving this problem.
    – Evengard
    Jul 25, 2017 at 11:02
  • 1
    See also lifehacker.com/5645098/… Dec 11, 2017 at 9:01
  • You can replace steps 4 through 7 with storing the same information in a small .reg-file and importing that into the registry. That's easier and safer IMHO because you'd skip the manual editing of the registry. Take a look at this rejected suggested edit. - OT: I don't quite get why my edit was rejected - I don't see how it deviates from the original intent of the post or changes the goals of the post's owner. (And I couldn't find a proper way to ask for clarification.)
    – Limer
    May 11, 2020 at 12:19
  • I am on Windows home and substituted lusrmngr for gpedit, and this partially worked... except that the autologon seems to also auto-unlock the lock screen as soon as it appears Mar 1, 2021 at 1:34
10

You can implement this as a windows task scheduled to be performed at login:

Run program rundll32.exe With arguments user32.dll,LockWorkStation

It works on my XP and 7, however it won't work on Windows 8/8.1

6
  • 2
    I know about this trick. However, if I put this batch file in startup, it would leave a security hole on my computer: until it gets running, someone bad could do someting bad. As I said, I don't want anyone to see my desktop.
    – utapyngo
    Nov 1, 2011 at 2:55
  • 3
    @eye - sadly, you are leaving a security hole by automatically logging in. This solution will at least work. I'd recommend not logging in automatically if you want security.
    – Rory Alsop
    Nov 1, 2011 at 11:56
  • 1
    Depending on your system it would run very quickly and lock... You could leave your monitor switched off too then the only indication your PC was on would be any lights on the front/keyboard?
    – HaydnWVN
    Nov 1, 2011 at 13:29
  • 1
    This works very well for me. Probably not 100% secure but good enough for my home use and non-invasive.
    – srmark
    Oct 1, 2014 at 21:11
  • 1
    works on windows 10, save it to a .cmd and put it in shell:startup
    – malix
    Jun 7, 2016 at 15:59
4

I used to do this on my home computer (not any more). It involves just two simple steps.

  1. Set Windows to automatically log in to your account upon start-up (this will load all the start-up programs and take you to the desktop).
  2. Include a shortcut in your personal Startup folder (or the registry's Run key) to lock the computer, either wih the following command or with nircmd utility.

    rundll32.exe user32.dll,LockWorkStation
    

Since most start-up programs are loaded in parallel, your computer will be locked almost immediately upon being automatically logged into. There's minimum concern of someone snooping in and stopping the lock.

However, if you need to ensure the computer is locked as soon as possible, follow the order in this article (avoid RunOnce as this is deleted after run, unless you can place a counter-script somewhere else to add it back).
I found this KB article which lists the order proper for older versions of Windows, but I can't find an official equivalent for Windows 7.

2

This is old but since there are some concerns to use rundll32.exe

What’s the guidance on when to use rundll32? Easy: Don’t use it

Occasionally, a customer will ask, "What is Rundll32.exe and when should I use it instead of just writing a standalone exe?"

The guidance is very simple: Don't use rundll32. Just write your standalone exe.

Here is another approach which will save from compiling a standalone exe yourself. Just save this as Lock-Workstation.ps1 and run it with powershell.

Function Lock-WorkStation { 
#Requires -Version 2.0 
$signature = @" 
[DllImport("user32.dll", SetLastError = true)] 
public static extern bool LockWorkStation(); 
"@ 
 
$LockWorkStation = Add-Type -memberDefinition $signature -name "Win32LockWorkStation" -namespace Win32Functions -passthru 
$LockWorkStation::LockWorkStation() | Out-Null 
}

Lock-WorkStation

Taken from Script-Center

1

I used the Sysinternals tool autologon.exe to set up the automatic logging on. I then created a shortcut at:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

with the command

rundll32.exe user32.dll,LockWorkStation
1

Just run this in an elevated prompt:

Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "LockAfterLogon" /t REG_SZ /d "\"C:\Windows\System32\Rundll32.exe\" user32.dll,LockWorkStation" /f

This will create a registry key that will:

  • Run at logon
  • Run C:\Windows\System32\Rundll32.exe user32.dll,LockWorkStation, which locks the system.
1
  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Feb 11, 2022 at 12:21
0

There is one secure solution: Do not shut down your system!

Windows 7 offers several methods for hibernating the system: Suspend-to-RAM (S3), Suspend-to-Disk (S4) and the Hybrid hibernate which combines both. There should be at least one method that suits you.

After wake-up from those modes all your applications are already started and ready for work.

If you enable the option "Require a password when the computer wakes" then you have exactly what you want plus it is 100% secure (or as secure as Windows can make it).

Windows 7 is usually stable enough to be used in this way. Most time I only boot when Windows Update has installed new patches and forces me to restart my system.

2
  • 1
    What about unintentional shutdown? (e.g., a power outage, or some bad actor intentionally turning the system off and on again?)
    – pioto
    Mar 14, 2014 at 3:39
  • If you use hibernate (suspend to disk) the computer will be turned off.
    – Robert
    Apr 23, 2015 at 13:55
0

one (not very best) way to implement it might be:

  1. autologin as passwordless single user
  2. set user password - net user <user> <password>
  3. lock the screen - rundll32.exe user32.dll,LockWorkStation

these two lines can be put into autoexec.bat file or startup folder in a batch file to run on every login


to activate autoexec.bat in registry

Software\Microsoft\Windows NT\CurrentVersion\Winlogon\ParseAutoexec's value should be 1

1
  • 1
    There are ways to auto-login a user with a password. Besides, if you set a password on a passwordless user, you need to manually remove it for the passwordless login to work the next time. Plus the password is stored plain text in the script.
    – ADTC
    Jun 7, 2016 at 16:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .