Since moving to Windows 7 my work laptop has constantly been plagued with a slow logon when I'm not physically connected to my work network. The entire point of having a laptop is so that I don't need to be physically connected at my work desk all the time. Recently I've grown extremely tired of this so I started investigating.
So what's happening?
When I start up my machine I am presented with the login screen. Upon logging in it says Welcome, then switches to "Waiting for the User Profile Service" from anywhere between 60 and 90 seconds. I've read for most people it takes even longer, but I'm assuming the shorter delay on mine is due to the beefed up hardware I'm using. So the first thing I tried was checking out the Event Viewer for any indication in the logs that something was going wrong. I noticed a few information messages regarding Forefront and MOM not being able to connect to their respective proxies, but that makes sense considering the network hasn't been initialized yet, but no error messages. I also noticed the following message:
The winlogon notification subscriber <Profiles> took 67 second(s) to handle the notification event (Logon).
But this just confirmed what I already knew.
The Solution
Let's get to the point. After countless trial and error procedures including disabling service after service, startup programs, enabling verbose logging, and even going as far as creating new Organization Units in Active Directory with no Group Policies, I finally discovered the Holy Grail.
- Run > gpedit.msc
- Navigate to Computer Configuration > Administrative Templates > System > User Profiles
- Edit the policy "Set maximum wait time for the network if a user has a roaming user profile or remote home directory" to "Enabled" and set the value Wait for network for maximum (seconds) to 0.
- Press OK and close the Local Group Policy Editor.
- Run > cmd.exe
- Run gpupdate /force
Voila, restart now and enjoy.
One caveat though… As I mentioned earlier my computer was on a corporate domain. To run gpupdate /force you need to have a connection to your corporate domain controller. I was able to achieve this away from the office by connecting through our VPN connection. If you can't connect to the DC some fellow bloggers have indicated restarting twice will put the local policy into effect, but you may have to wait until the next time you're in the office to update your policy.